home *** CD-ROM | disk | FTP | other *** search
/ Aminet 34 / Aminet 34 (2000)(Schatztruhe)[!][Dec 1999].iso / Aminet / dev / amos / adv-ita.lha / Adventures.AMOS / Adventures.amosSourceCode
AMOS Source Code  |  1999-03-12  |  377KB  |  11,856 lines

  1. '-> Adventures Conceiver by Stefano Regattin 
  2. 'i> 12 giugno 1996 
  3. 'm> 13,14,15,16,17,19,20,21,22,26,27,28,30 giugno 1996 
  4. 'm> 1,2,3,4,5,6,13,14,15,17,18,20,21,23 luglio 1996
  5. 'm> 4,17,31 agosto 1996
  6. 'm> 7,14,15,16,28 settembre 1996 
  7. 'm> 2,8,20,21 ottobre 1996 
  8. 'm> 1,2,5 novembre 1996
  9. 'm> 23,25 febbraio 1997
  10. 'm> 1,2,3,4,5,6,7,8 marzo 1997 
  11. 'm> 29 maggio 1997 
  12. 'm> 6,12,13,14 giugno 1997 
  13. 'm> 29 agosto 1997 
  14. 'm> 10,19,28,29,30 settembre 1997
  15. 'm> 1,6,31 ottobre 1997
  16. 'm> 1,3,4,5,6,7,8,9,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 novembre 1997 
  17. 'm> 1,2,3,4,5,6,7,8,9,11,12,13,14,16,17,22 dicembre 1997 
  18. 'm> 4 gennaio 1998 
  19. 'm> 28,31 marzo 1998 
  20. 'm> 22,23,24,25,26,27,28,30 aprile 1998
  21. 'm> 1,2,5,7,8,9,10 maggio 1998 
  22. 'm> 13,15,16,17,18,19,20,21,23,26,27,28,29 giugno 1998 
  23. 'm> 2,3,5,6,7,10,11,12,13,16,17,18,19,20,21,22,25,28,30,31 luglio 1998 
  24. 'm> 2,3,4,5,6,7,9,10,15 agosto 1998  
  25. 'm> 7,11,20 settembre 1998   
  26. 'm> 5,6,7,8,9,10,14,16,17,20,23,27,28 novembre 1998        
  27. 'm> 4,5,6,7,11,15,17,22,24,29,31 dicembre 1998       
  28. 'm> 5,14 gennaio 1999  
  29. 'm> 2,10,15,27 febbraio 1999   
  30. 'm> 1,9 marzo 1999 
  31. '----------------------------------------------------------------------------- 
  32. 'Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0. Pu�  
  33. 'essere liberamente distribuito. Pu� essere modificato, purch� mi si citi nel
  34. 'programma finale risultante. Se si decide di utilizzarlo, spedire 10.000 lire 
  35. 'o 5 Euro al seguente nominativo ed indirizzo: Stefano Regattin, piazza Pietro 
  36. 'Gasparri 4-U327, 20161 Milano, Italia. Buon divertimento, grazie e ciao!  
  37. '------------------------------------------------------------------------- 
  38.  
  39. Set Buffer 910
  40.  
  41. FILEREQUESTERMUSICA=False
  42.  
  43. Data "E' l'alba","E' mattina","E' giorno","E' pomeriggio","E' il tramonto"
  44. Data "E' sera","E' notte"
  45. Data "Il cielo si sta schiarendo","Il sole si sta alzando","Il sole ï¿½ alto"
  46. Data "Il sole sta calando","Il cielo si sta oscurando"
  47. Data "La luna si sta alzando","La luna ï¿½ alta","La luna sta calando"
  48. Data "E' nuvoloso","Sta piovendo","Sta nevicando","Sta grandinando"
  49. Data "C'� la nebbia","E' buio"
  50.  
  51. Data "N","Nord","NE","NordEst","E","Est","SE","SudEst","S","Sud","SO"
  52. Data "SudOvest","O","Ovest","NO","NordOvest","Sopra","Sopra","Sotto","Sotto"
  53.  
  54. Data "albero","alberi",100000,"albero rotto","alberi rotti",75000,%10000000,0
  55. Data "arco","archi",3000,"arco rotto","archi rotti",1500,%10001000000,9
  56. Data "arancia","arance",250,"buccia di arancia","bucce di arancia",10,1,1
  57. Data "banana","banane",300,"buccia di banana","bucce di banana",15,1,1
  58. Data "bastone","bastoni",1000,"bastone rotto","bastoni rotti",750,%1000000,2
  59. Data "cedro","cedri",200,"buccia di cedro","bucce di cedro",10,1,1
  60. Data "coltello","coltelli",2000,"coltello rotto","coltelli rotti",1000,%1000000,10
  61. Data "dattero","datteri",25,"guscio di dattero","gusci di dattero",5,1,1
  62. Data "fico","fichi",220,"buccia di fico","bucce di fico",10,1,1
  63. Data "foglietto","foglietti",2,"foglietto strappato","foglietti strappati",1,%1000,0
  64. Data "fragola","fragole",10,"picciolo di fragola","piccioli di fragola",1,1,1
  65. Data "freccia","frecce",100,"freccia rotta","freccie rotte",50,%101000000,1
  66. Data "limone","limoni",200,"buccia di limone","bucce di limone",10,1,1
  67. Data "maglia","maglie",5000,"maglia rotta","maglie rotte",2500,%100,19
  68. Data "mandarino","mandarini",175,"buccia di mandarino","bucce di mandarino",10,1,1
  69. Data "mapo","mapo",200,"buccia di mapo","bucce di mapo",10,1,1
  70. Data "masso","massi",50000,"masso rotto","massi rotti",50000,0,0
  71. Data "mela","mele",250,"torsolo di mela","torsoli di mela",50,1,1
  72. Data "pera","pere",250,"torsolo di pera","torsoli di pera",50,1,1
  73. Data "pompelmo","pompelmi",275,"buccia di pompelmo","bucce di pompelmo",10,1,1
  74. Data "spada","spade",7500,"spada rotta","spade rotte",5000,%1000000,20
  75.  
  76. Data "anarchico","anarchici","bandito","banditi","barbaro","barbari"
  77. Data "bastardo","bastardi","bravotto","bravotti","cretino","cretini"
  78. Data "debosciato","debosciati","deficiente","deficienti"
  79. Data "delinquente","delinquenti","estremista","estremisti"
  80. Data "fanatico","fanatici","fanfarone","fanfaroni","fellone","felloni"
  81. Data "fetente","fetenti","fessacchiotto","fessacchiotti","fesso","fessi"
  82. Data "guerrafondaio","guerrafondai","idiota","idioti","imbecille","imbecilli"
  83. Data "malfattore","malfattori","maniaco","maniaci","maramaldo","maramaldi"
  84. Data "negriero","negrieri","ribelle","ribelli","rimbambito","rimbambiti"
  85. Data "pervertito","pervertiti","pirata","pirati","pirlone","pirloni"
  86.  
  87. Data "Acqua",5
  88. Data "Bosco",2
  89. Data "Collina",1
  90. Data "Foresta",4
  91. Data "Ghiaccio",3
  92. Data "Montagna",2
  93. Data "Neve",3
  94. Data "Oasi",0
  95. Data "Palude",3
  96. Data "Pianura",0
  97. Data "Roccia",4
  98. Data "Sabbia",1
  99.  
  100. Data "Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0"
  101. Data ". Pu� essere liberamente distribuito. Pu� essere modificato, purch� mi "
  102. Data "si citi nel programma finale risultante. Se si decide di utilizzarlo, s"
  103. Data "pedire 10.000 lire o 5 Euro al seguente nominativo ed indirizzo: Stefan"
  104. Data "o Regattin, piazza Pietro Gasparri 4 - U327, 20161 Milano, Italia. Buon"
  105. Data " divertimento, grazie e ciao!"
  106.  
  107. MESSAGGIO3$="Adventures Conceiver by Stefano Regattin"
  108.  
  109. PROLOGO$="L'avventura preimpostata ï¿½ dimostrativa. Non c'� uno scopo definito"
  110. PROLOGO$=PROLOGO$+". Gli altri personaggi prenderanno un'oggetto e cercherann"
  111. PROLOGO$=PROLOGO$+"o di usarlo su un personaggio presente dove si trovano, pe"
  112. PROLOGO$=PROLOGO$+"r cui anche sul tuo personaggio; dopo di ci� si muoveranno"
  113. PROLOGO$=PROLOGO$+". Usa tutti i comandi e guarda cosa succede."
  114.  
  115. _INTERFACCIA$="BAse 160,40;"
  116. _INTERFACCIA$=_INTERFACCIA$+"SIze 320,120;"
  117. _INTERFACCIA$=_INTERFACCIA$+"INk 1,0,0;"
  118. _INTERFACCIA$=_INTERFACCIA$+"GraphicBox 0,0,319,119;"
  119. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Adventures Conceiver 1.3';"
  120. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,8,0 VA,0,1;"
  121. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'by Stefano Regattin';"
  122. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,24,0 VA,0,1;"
  123. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Se decidi di utilizzarlo, spedisci';"
  124. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,40,0 VA,0,1;"
  125. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'diecimila lire o cinque Euro';"
  126. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,56,0 VA,0,1;"
  127. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'al seguente indirizzo:';"
  128. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,72,0 VA,0,1;"
  129. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'piazza Pietro Gasparri, 4 - U327';"
  130. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,88,0 VA,0,1;"
  131. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'20161 Milano - Italia';"
  132. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,104,0 VA,0,1;"
  133. _INTERFACCIA$=_INTERFACCIA$+"RunUntil 0,4;"
  134. _INTERFACCIA$=_INTERFACCIA$+"EXit;"
  135.  
  136. BANCO=65535 : BANCOMODULO=1023 : NUMMASE=31 : NUMMASCO=255 : NUMMASL=255
  137. NUMMASO=255 : NUMMASP=255 : NUMMASR=255 : NUMMASS=255 : PESOS=1
  138. '----------------------------------------------------------------------------
  139. 'Per un difetto di AMOS Professional non si pu� assegnare un valore maggiore 
  140. ' di 1023 al banco di memoria da usare con il comando Track Load e Track Play
  141. '----------------------------------------------------------------------------- 
  142. Global EPILOGO$,FILE$,MESSAGGIO1$,MESSAGGIO3$,MERITI$,NOMEFILE$,PROLOGO$
  143. Global _INTERFACCIA$
  144. Global ANEMICI,BANCO,BANCOMODULO,CATEGORIADEGLIOGGETTI,CARATTEREMESSAGGIO
  145. Global COMPIUTAAZIONE,CONDIZIONEG,EDIFICIO,FILEREQUESTERMUSICA
  146. Global INEMICITISVEGLIANO,INEMICISVEGLIANOPERSONAGGIOP,LUOGO
  147. Global M0DOVISUALIZZAZIONETEMPO,M0DIFICA,NUMEROCO,NUMEROE,NUMEROL,NUMERON
  148. Global NUMEROO,NUMEROP,NUMEROR,NUMMASCO,NUMMASE,NUMMASL,NUMMASO,NUMMASP
  149. Global NUMMASR,NUMMASS,OGGETTO,OGGETTOUSANTE,OGGETTOUSATO,PERSONAGGIO
  150. Global PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO,PESOS,REGIONE,SENZAMEMORIA,STANZA
  151. Global TEMP0TRASCORSO,ULTIMALINEA,_MUSICA
  152. Dim CONDIZIONEG$(13),DESCRIZIONECO$(NUMMASCO),DESCRIZIONEE$(NUMMASE)
  153. Dim DESCRIZIONEL$(NUMMASL),DESCRIZIONEP$(NUMMASP)
  154. Dim DESCRIZIONES$(NUMMASS,NUMMASE),DREZIONE$(9),DREZIONEL$(9),FASEG$(6)
  155. Dim NOMEE$(NUMMASE),NOMEL$(NUMMASL),NOMEP$(NUMMASP),NOMEPCO$(NUMMASCO)
  156. Dim NOMEPN$(27),NOMEPRO$(NUMMASCO),NOMER$(NUMMASR),NOMES$(NUMMASS,NUMMASE)
  157. Dim NOMESCO$(NUMMASCO),NOMESN$(27),NOMESRO$(NUMMASCO),TESTOO$(1),TIPOL$(11)
  158. Dim AZIONEP(7,NUMMASP),CATEGORIAO(NUMMASO),CAMMINOP(NUMMASP)
  159. Dim C0STITUZIONEP(NUMMASP),DESTREZZAP(NUMMASP),DREZIONEL(9,NUMMASL)
  160. Dim DREZIONEPRESAP(NUMMASP),DREZIONEOPPOSTAAQUELLAPRESAP(NUMMASP)
  161. Dim DREZIONES(9,NUMMASS,NUMMASE),FINEA(7,NUMMASP),F0RZAP(NUMMASP)
  162. Dim INIZIOSONNOP(NUMMASP),LUOGODIDESTINAZIONEP(NUMMASP),NUMEROS(NUMMASE)
  163. Dim OGGETTIDATIOLASCIATI(NUMMASCO),OGGETTIDELPERSONAGGIO0(NUMMASCO)
  164. Dim OGGETTIDIA(NUMMASCO),OGGETTINELLUOGO(NUMMASCO),PARAAAZIONEP(7,NUMMASP)
  165. Dim PARABAZIONEP(7,NUMMASP),PARACAZIONEP(7,NUMMASP),PARATIPOCO(NUMMASCO)
  166. Dim PARATIPOL(11),PERSONAGGIOVISIBILEP(NUMMASP),PESOCO(NUMMASCO)
  167. Dim PESONETTOP(NUMMASP),PESOP(NUMMASP),PESORESTOCO(NUMMASCO)
  168. Dim POSIZIONEA(NUMMASP),POSIZIONEE(NUMMASL),POSIZIONEO(NUMMASO)
  169. Dim POSIZIONEP(NUMMASP),REGIONEL(NUMMASL),RESISTENZAP(NUMMASP)
  170. Dim RESTIDELPERSONAGGIO0(NUMMASCO),RESTIDIA(NUMMASCO),RESTINELLUOGO(NUMMASCO)
  171. Dim SOLDIL(NUMMASL),SOLDIP(NUMMASP),SOLDIS(NUMMASS,NUMMASE)
  172. Dim SOLDIRICEVUTIP(NUMMASP),SONNOP(NUMMASP),TEMP0DIATTRAVERSAMENTOP(NUMMASP)
  173. Dim TESTOO(NUMMASO),TIPOCO(NUMMASCO),TIPOL(NUMMASL),TIPOO(NUMMASO)
  174. Dim TIPOP(NUMMASP)
  175. Global CONDIZIONEG$(),DESCRIZIONECO$(),DESCRIZIONEE$(),DESCRIZIONEL$()
  176. Global DESCRIZIONEP$(),DESCRIZIONES$(),DREZIONE$(),DREZIONEL$(),FASEG$()
  177. Global NOMEE$(),NOMEL$(),NOMEP$(),NOMEPCO$(),NOMEPN$(),NOMEPRO$(),NOMER$()
  178. Global NOMES$(),NOMESCO$(),NOMESN$(),NOMESRO$(),TESTOO$(),TIPOL$()
  179. Global AZIONEP(),CATEGORIAO(),CAMMINOP(),C0STITUZIONEP(),DESTREZZAP()
  180. Global DREZIONEL(),DREZIONEPRESAP(),DREZIONEOPPOSTAAQUELLAPRESAP(),DREZIONES()
  181. Global FINEA(),F0RZAP(),INIZIOSONNOP(),LUOGODIDESTINAZIONEP(),NUMEROS()
  182. Global OGGETTIDATIOLASCIATI(),OGGETTIDELPERSONAGGIO0(),OGGETTIDIA()
  183. Global OGGETTINELLUOGO(),PARAAAZIONEP(),PARABAZIONEP(),PARACAZIONEP()
  184. Global PARATIPOCO(),PARATIPOL(),PERSONAGGIOVISIBILEP(),PESOCO(),PESONETTOP()
  185. Global PESOP(),PESORESTOCO(),POSIZIONEA(),POSIZIONEE(),POSIZIONEO()
  186. Global POSIZIONEP(),REGIONEL(),RESISTENZAP(),RESTIDELPERSONAGGIO0(),RESTIDIA()
  187. Global RESTINELLUOGO(),SOLDIL(),SOLDIP(),SOLDIS(),SOLDIRICEVUTIP(),SONNOP()
  188. Global TEMP0DIATTRAVERSAMENTOP(),TESTOO(),TIPOCO(),TIPOL(),TIPOO(),TIPOP()
  189. Proc SETTASCHERMO
  190. Proc ARCOBALENO
  191. For A=0 To 6
  192.  Read DATO$ : FASEG$(A)=DATO$
  193. Next A
  194. For A=0 To 13
  195.  Read DATO$ : CONDIZIONEG$(A)=DATO$
  196. Next A
  197. For A=0 To 9
  198.  Read DATO$ : DREZIONEL$(A)=DATO$
  199.  Read DATO$ : DREZIONE$(A)=DATO$
  200. Next A
  201. Proc INIZIALIZZALEVARIABILI
  202. NUMEROCO=20 : NUMEROE=0 : NUMEROL=127 : NUMEROO=127 : NUMEROP=20 : NUMEROR=1
  203. NUMEROS(0)=0
  204. Proc _ORDINALUOGHI[127,8,0,True]
  205. For A=0 To NUMEROCO
  206.  Read DATO$ : NOMESCO$(A)=DATO$
  207.  Read DATO$ : NOMEPCO$(A)=DATO$
  208.  Read DATO : PESOCO(A)=DATO
  209.  Read DATO$ : NOMESRO$(A)=DATO$
  210.  Read DATO$ : NOMEPRO$(A)=DATO$
  211.  Read DATO : PESORESTOCO(A)=DATO
  212.  Read DATO : TIPOCO(A)=DATO
  213.  Read DATO : PARATIPOCO(A)=DATO
  214. Next A
  215. If NUMEROE>-1
  216.  For A=0 To NUMEROE
  217.   POSIZIONEE(A)=Rnd(NUMEROL)
  218.   For B=0 To NUMEROS(A)
  219.    SOLDIS(B,A)=Rnd(19)
  220.   Next B
  221.  Next A
  222. End If 
  223. For A=0 To 27
  224.  Read DATO$ : NOMESN$(A)=DATO$
  225.  Read DATO$ : NOMEPN$(A)=DATO$
  226. Next A
  227. For A=0 To 11
  228.  Read DATO$ : TIPOL$(A)=DATO$
  229.  Read DATO : PARATIPOL(A)=DATO
  230. Next A
  231. Randomize Timer
  232. For A=0 To NUMEROL
  233.  TIPOL(A)=Rnd(11)
  234.  SOLDIL(A)=Rnd(1)
  235. Next A
  236. For A=0 To NUMEROO
  237.  CATEGORIAO(A)=Rnd(NUMEROCO)
  238.  POSIZIONEO(A)=Rnd(NUMEROL)
  239. Next A
  240. For A=0 To NUMEROP
  241.  C0STITUZIONEP(A)=Rnd(99)+1
  242.  DESTREZZAP(A)=Rnd(99)+1
  243.  F0RZAP(A)=Rnd(99)+1
  244.  PESOP(A)=Rnd(70)+50
  245.  POSIZIONEP(A)=Rnd(NUMEROL)
  246.  LUOGODIDESTINAZIONEP(A)=-1
  247.  DREZIONEPRESAP(A)=-1
  248.  DREZIONEOPPOSTAAQUELLAPRESAP(A)=0
  249.  RESISTENZAP(A)=C0STITUZIONEP(A)
  250.  DATO=Rnd(1) : If DATO=1 Then Bset 1,TIPOP(A) Else Bclr 1,TIPOP(A)
  251.  DATO=Rnd(1) : If DATO=1 Then Bset 3,TIPOP(A) Else Bclr 3,TIPOP(A)
  252.  DATO=Rnd(9)+1
  253.  SOLDIP(A)=DATO
  254.  Add PESONETTOP(A),DATO*PESOS
  255.  If A>0
  256.   INIZIOSONNOP(A)=Rnd(360)+1080
  257.   AZIONEP(0,A)=17
  258.   PARAAAZIONEP(0,A)=1
  259.   AZIONEP(1,A)=27
  260.   PARAAAZIONEP(1,A)=256
  261.   AZIONEP(2,A)=27
  262.   PARAAAZIONEP(2,A)=256
  263.   AZIONEP(3,A)=27
  264.   PARAAAZIONEP(3,A)=256
  265.   AZIONEP(4,A)=27
  266.   PARAAAZIONEP(4,A)=256
  267.   AZIONEP(5,A)=27
  268.   PARAAAZIONEP(5,A)=256
  269.   AZIONEP(6,A)=27
  270.   PARAAAZIONEP(6,A)=256
  271.   AZIONEP(7,A)=16
  272.  End If 
  273. Next A
  274. '----------------
  275. 'Scopo del gioco 
  276. AZIONEP(7,0)=0
  277. '------------
  278. 'PARametro A 
  279. PARAAAZIONEP(7,0)=0
  280. '------------
  281. 'PARametro B 
  282. PARABAZIONEP(7,0)=0
  283. '------------
  284. 'PARametro C 
  285. PARACAZIONEP(7,0)=0
  286. '------------------- 
  287. For A=64 To 127
  288.  REGIONEL(A)=1
  289. Next A
  290. Read DATO$ : MERITI$=DATO$
  291. Read DATO$ : MERITI$=MERITI$+DATO$
  292. Read DATO$ : MERITI$=MERITI$+DATO$
  293. Read DATO$ : MERITI$=MERITI$+DATO$
  294. Read DATO$ : MERITI$=MERITI$+DATO$
  295. Read DATO$ : MERITI$=MERITI$+DATO$
  296. TESTOO$(0)=MERITI$
  297. If _MUSICA=True Then Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  298. TASTOPREMUTO$="d"
  299. Repeat 
  300.  If TASTOPREMUTO$="d" Then Proc MOSTRAILDESTINODELGIOCO
  301.  If TASTOPREMUTO$="e" Then Proc MOSTRAGLIEDIFICI
  302.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Proc MOSTRALESTANZE
  303.  If TASTOPREMUTO$="k" Then Proc MOSTRALECATEGORIEDEGLIOGGETTI
  304.  If TASTOPREMUTO$="l" Then Proc MOSTRAILUOGHI
  305.  If TASTOPREMUTO$="o" Then Proc MOSTRAGLIOGGETTI
  306.  If TASTOPREMUTO$="p" Then Proc MOSTRAIPERSONAGGI
  307.  If TASTOPREMUTO$="r" Then Proc MOSTRALEREGIONI
  308. Until TASTOPREMUTO$=Chr$(27)
  309. Track Loop Of : Track Stop : Rainbow Del 0 : Screen Close 0
  310. Erase BANCOMODULO : End 
  311. Procedure ARCOBALENO
  312. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  313. Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  314. Set Rainbow 0,1,16,"","",""
  315. For LINEA=0 To 15 : Read DATO : Rain(0,LINEA)=DATO : Next LINEA
  316. If Ntsc Then LUNGHEZZAARCOBALENO=223 Else LUNGHEZZAARCOBALENO=271
  317. Rainbow 0,2,0,LUNGHEZZAARCOBALENO
  318. End Proc
  319. Procedure AZIONIALTRIPERSONAGGI
  320. While COMPIUTAAZIONE>0
  321.  For P=1 To NUMEROP
  322.   If RESISTENZAP(P)>0
  323.    If Btst(2,TIPOP(P))=False
  324.     Proc FAIDORMIREGLIALTRIPERSONAGGI[P]
  325.     If AZIONEP(POSIZIONEA(P),P)>0
  326.      If AZIONEP(POSIZIONEA(P),P)=1
  327.       If FINEA(POSIZIONEA(P),P)=False
  328.        Proc DAIAPAO[POSIZIONEA(P),P]
  329.       End If 
  330.      Else If AZIONEP(POSIZIONEA(P),P)=2
  331.       If FINEA(POSIZIONEA(P),P)=False
  332.        Proc DAIAPAOB[POSIZIONEA(P),P]
  333.       End If 
  334.      Else If AZIONEP(POSIZIONEA(P),P)=3
  335.       If FINEA(POSIZIONEA(P),P)=False
  336.        Proc DAIAPAOTB[POSIZIONEA(P),P]
  337.       End If 
  338.      Else If AZIONEP(POSIZIONEA(P),P)=4
  339.       If FINEA(POSIZIONEA(P),P)=False
  340.        Proc DAIAPAP[POSIZIONEA(P),P]
  341.       End If 
  342.      Else If AZIONEP(POSIZIONEA(P),P)=5
  343.       If FINEA(POSIZIONEA(P),P)=False
  344.        Proc DAIAPPA[POSIZIONEA(P),P]
  345.       End If 
  346.      Else If AZIONEP(POSIZIONEA(P),P)=6
  347.       If FINEA(POSIZIONEA(P),P)=False
  348.        Proc DAIAPABO[POSIZIONEA(P),P]
  349.       End If 
  350.      Else If AZIONEP(POSIZIONEA(P),P)=7
  351.       If FINEA(POSIZIONEA(P),P)=False
  352.        Proc DAIAPABOC[POSIZIONEA(P),P]
  353.       End If 
  354.      Else If AZIONEP(POSIZIONEA(P),P)=8
  355.       If FINEA(POSIZIONEA(P),P)=False
  356.        Proc DAIAPABOTC[POSIZIONEA(P),P]
  357.       End If 
  358.      Else If AZIONEP(POSIZIONEA(P),P)=9
  359.       If FINEA(POSIZIONEA(P),P)=False
  360.        Proc DAIAPABP[POSIZIONEA(P),P]
  361.       End If 
  362.      Else If AZIONEP(POSIZIONEA(P),P)=10
  363.       If FINEA(POSIZIONEA(P),P)=False
  364.        Proc DAIAPAPB[POSIZIONEA(P),P]
  365.       End If 
  366. '    ------------------------------------  
  367.      Else If AZIONEP(POSIZIONEA(P),P)=11
  368.       If FINEA(POSIZIONEA(P),P)=False
  369.        Proc LASCIAAO[POSIZIONEA(P),P]
  370.       End If 
  371.      Else If AZIONEP(POSIZIONEA(P),P)=12
  372.       If FINEA(POSIZIONEA(P),P)=False
  373.        Proc LASCIAAOB[POSIZIONEA(P),P]
  374.       End If 
  375.      Else If AZIONEP(POSIZIONEA(P),P)=13
  376.       If FINEA(POSIZIONEA(P),P)=False
  377.        Proc LASCIAAOTB[POSIZIONEA(P),P]
  378.       End If 
  379.      Else If AZIONEP(POSIZIONEA(P),P)=14
  380.       If FINEA(POSIZIONEA(P),P)=False
  381.        Proc LASCIAAP[POSIZIONEA(P),P]
  382.       End If 
  383.      Else If AZIONEP(POSIZIONEA(P),P)=15
  384.       If FINEA(POSIZIONEA(P),P)=False
  385.        Proc LASCIAPA[POSIZIONEA(P),P]
  386.       End If 
  387. '    ------------------------------------  
  388.      Else If AZIONEP(POSIZIONEA(P),P)=16
  389.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  390.        Proc MUOVITIP[POSIZIONEA(P),P]
  391.       End If 
  392. '    ------------------------------------  
  393.      Else If AZIONEP(POSIZIONEA(P),P)=17
  394.       If FINEA(POSIZIONEA(P),P)=False
  395.        Proc PRENDIAO[POSIZIONEA(P),P]
  396.       End If 
  397.      Else If AZIONEP(POSIZIONEA(P),P)=18
  398.       If FINEA(POSIZIONEA(P),P)=False
  399.        Proc PRENDIAOB[POSIZIONEA(P),P]
  400.       End If 
  401.      Else If AZIONEP(POSIZIONEA(P),P)=19
  402.       If FINEA(POSIZIONEA(P),P)=False
  403.        Proc PRENDIAOTB[POSIZIONEA(P),P]
  404.       End If 
  405.      Else If AZIONEP(POSIZIONEA(P),P)=20
  406.       If FINEA(POSIZIONEA(P),P)=False
  407.        Proc PRENDIAP[POSIZIONEA(P),P]
  408.       End If 
  409.      Else If AZIONEP(POSIZIONEA(P),P)=21
  410.       If FINEA(POSIZIONEA(P),P)=False
  411.        Proc PRENDIPA[POSIZIONEA(P),P]
  412.       End If 
  413. '    ------------------------------------  
  414.      Else If AZIONEP(POSIZIONEA(P),P)=22
  415.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  416.        Proc SEGUI[POSIZIONEA(P),P]
  417.       End If 
  418.      Else If AZIONEP(POSIZIONEA(P),P)=23
  419.       If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  420.        Proc SEGUIPA[POSIZIONEA(P),P]
  421.       End If 
  422. '    ------------------------------------  
  423.      Else If AZIONEP(POSIZIONEA(P),P)=24
  424.       If FINEA(POSIZIONEA(P),P)=False
  425.        Proc USAUNOSUAO[POSIZIONEA(P),P]
  426.       End If 
  427.      Else If AZIONEP(POSIZIONEA(P),P)=25
  428.       If FINEA(POSIZIONEA(P),P)=False
  429.        Proc USAUNOSUAOB[POSIZIONEA(P),P]
  430.       End If 
  431.      Else If AZIONEP(POSIZIONEA(P),P)=26
  432.       If FINEA(POSIZIONEA(P),P)=False
  433.        Proc USAUNOSUAOTB[POSIZIONEA(P),P]
  434.       End If 
  435.      Else If AZIONEP(POSIZIONEA(P),P)=27
  436.       If FINEA(POSIZIONEA(P),P)=False
  437.        Proc USAUNOSUAP[POSIZIONEA(P),P]
  438.       End If 
  439.      Else If AZIONEP(POSIZIONEA(P),P)=28
  440.       If FINEA(POSIZIONEA(P),P)=False
  441.        Proc USAUNOSUPA[POSIZIONEA(P),P]
  442.       End If 
  443.      Else If AZIONEP(POSIZIONEA(P),P)=29
  444.       If FINEA(POSIZIONEA(P),P)=False
  445.        Proc USAUNOASUBO[POSIZIONEA(P),P]
  446.       End If 
  447.      Else If AZIONEP(POSIZIONEA(P),P)=30
  448.       If FINEA(POSIZIONEA(P),P)=False
  449.        Proc USAUNOASUBOC[POSIZIONEA(P),P]
  450.       End If 
  451.      Else If AZIONEP(POSIZIONEA(P),P)=31
  452.       If FINEA(POSIZIONEA(P),P)=False
  453.        Proc USAUNOASUBOTC[POSIZIONEA(P),P]
  454.       End If 
  455.      Else If AZIONEP(POSIZIONEA(P),P)=32
  456.       If FINEA(POSIZIONEA(P),P)=False
  457.        Proc USAUNOASUBP[POSIZIONEA(P),P]
  458.       End If 
  459.      Else If AZIONEP(POSIZIONEA(P),P)=33
  460.       If FINEA(POSIZIONEA(P),P)=False
  461.        Proc USAUNOASUPB[POSIZIONEA(P),P]
  462.       End If 
  463.      Else If AZIONEP(POSIZIONEA(P),P)=34
  464.       If FINEA(POSIZIONEA(P),P)=False
  465.        Proc USAUNOTASUBO[POSIZIONEA(P),P]
  466.       End If 
  467.      Else If AZIONEP(POSIZIONEA(P),P)=35
  468.       If FINEA(POSIZIONEA(P),P)=False
  469.        Proc USAUNOTASUBOC[POSIZIONEA(P),P]
  470.       End If 
  471.      Else If AZIONEP(POSIZIONEA(P),P)=36
  472.       If FINEA(POSIZIONEA(P),P)=False
  473.        Proc USAUNOTASUBOTC[POSIZIONEA(P),P]
  474.       End If 
  475.      Else If AZIONEP(POSIZIONEA(P),P)=37
  476.       If FINEA(POSIZIONEA(P),P)=False
  477.        Proc USAUNOTASUBP[POSIZIONEA(P),P]
  478.       End If 
  479.      Else If AZIONEP(POSIZIONEA(P),P)=38
  480.       If FINEA(POSIZIONEA(P),P)=False
  481.        Proc USAUNOTASUPB[POSIZIONEA(P),P]
  482.       End If 
  483. '    ------------------------------------  
  484.      Else If AZIONEP(POSIZIONEA(P),P)=39
  485.       If FINEA(POSIZIONEA(P),P)=False
  486.        Proc USATIUNO[POSIZIONEA(P),P]
  487.       End If 
  488.      Else If AZIONEP(POSIZIONEA(P),P)=40
  489.       If FINEA(POSIZIONEA(P),P)=False
  490.        Proc USATIUNOA[POSIZIONEA(P),P]
  491.       End If 
  492.      Else If AZIONEP(POSIZIONEA(P),P)=41
  493.       If FINEA(POSIZIONEA(P),P)=False
  494.        Proc USATIUNOTA[POSIZIONEA(P),P]
  495.       End If 
  496.      End If 
  497.     End If 
  498.     Add POSIZIONEA(P),1,0 To 7
  499.    Else 
  500.     Dec SONNOP(P)
  501.     If SONNOP(P)=0
  502.      Bclr 2,TIPOP(P)
  503.     End If 
  504.    End If 
  505.   End If 
  506.  Next P
  507.  P=Rnd(NUMEROP-1)+1
  508.  PERSONAGGIOPSITROVADENTROUNEDIFICIO=POSIZIONEP(P)/$10000
  509.  If ANEMICI=True and PERSONAGGIOPSITROVADENTROUNEDIFICIO=0
  510.   NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  511.   NEMICI=Max(NEMICI,0)
  512.   If NEMICI=0
  513.    If Btst(2,TIPOP(P))=True
  514.     Bclr 2,TIPOP(P) : INEMICISVEGLIANOPERSONAGGIOP=True
  515.     Proc NEMICI[P]
  516.    Else 
  517.     INEMICISVEGLIANOPERSONAGGIOP=False
  518.     Proc NEMICI[P]
  519.    End If 
  520.   End If 
  521.  End If 
  522.  Dec COMPIUTAAZIONE
  523. Wend 
  524. End Proc
  525. Procedure CARATTERISTICHE
  526. Cls 
  527. Print "Caratteristiche di ";NOMEP$(0);">"
  528. Print "Costituzione "; Using "##### ";C0STITUZIONEP(0);
  529. If C0STITUZIONEP(0)=1 Then Print "punto" Else Print "punti"
  530. Print "Destrezza    "; Using "##### ";DESTREZZAP(0);
  531. If DESTREZZAP(0)=1 Then Print "punto" Else Print "punti"
  532. Print "Forza        "; Using "##### ";F0RZAP(0);
  533. If F0RZAP(0)=1 Then Print "punto" Else Print "punti"
  534. Print "Peso         "; Using "##### ";PESOP(0);
  535. If PESOP(0)=1 Then Print "chilo" Else Print "chili"
  536. Print "Resistenza   "; Using "##### ";RESISTENZAP(0);
  537. If RESISTENZAP(0)=1 Then Print "punto" Else Print "punti"
  538. Print "Sesso ";
  539. If Btst(1,TIPOP(0))=True Then Print "femminile" Else Print "maschile"
  540. For A=0 To NUMEROO
  541.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  542.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  543.    Print NOMEP$(0);" indossa 1 ";NOMESCO$(CATEGORIAO(A))
  544.    Exit 
  545.   End If 
  546.  End If 
  547. Next A
  548. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  549. End Proc
  550. Procedure CARICAUNFILE
  551. Show On : Cls 
  552. FILE$=Fsel$("*.Adv",NOMEFILE$,"Carica un file","di Adventures Conceiver")
  553. If Exist(FILE$)
  554.  Open In 1,FILE$
  555.  MARCATORE$=Input$(1,21)
  556.  LUNGHEZZABANCO=Lof(1)
  557.  Close 1
  558.  MEMORIA=Chip Free+Fast Free
  559.  If LUNGHEZZABANCO>MEMORIA
  560.   Proc TIC["Non c'� memoria sufficiente per caricare il file",ULTIMALINEA-1]
  561.   Proc TIC[FILE$,ULTIMALINEA] : Proc _ASPETTA
  562.  Else 
  563.   SEPARATORE=Instr(FILE$,":") : POSIZIONE=1
  564.   For A=1 To Len(FILE$)
  565.    If Instr(FILE$,"/",POSIZIONE)>0
  566.     SEPARATORECASSETTO=Instr(FILE$,"/",POSIZIONE)
  567.     POSIZIONE=SEPARATORECASSETTO+1
  568.    End If 
  569.   Next A
  570.   SEPARATORE=Max(SEPARATORE,SEPARATORECASSETTO)
  571.   PERCORSO$=Left$(FILE$,SEPARATORE)
  572.   If Right$(PERCORSO$,1)="/"
  573.    PERCORSO$=Left$(PERCORSO$,Len(PERCORSO$)-1)
  574.   End If 
  575.   NOMEFILE$=Right$(FILE$,Len(FILE$)-SEPARATORE)
  576.   If MARCATORE$="Adventures Conceiver"+Chr$(10)
  577.    Reserve As Work BANCO,LUNGHEZZABANCO
  578.    Bload FILE$,Start(BANCO)
  579.    MESSAGGIO1$="* "+NOMEFILE$+Str$(LUNGHEZZABANCO)+" Byte *"
  580.   Else 
  581.    Proc TIC[NOMEFILE$,ULTIMALINEA-1]
  582.    Proc TIC["Non ï¿½ un file di Adventures Conceiver",ULTIMALINEA] : Proc _ASPETTA
  583.   End If 
  584.  End If 
  585. End If 
  586. Hide On 
  587. End Proc
  588. Procedure CONDIZIONEDELGIORNO
  589. Print "Descrizione giornata>";
  590. If CONDIZIONEG=0
  591.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  592.  If M1NUTI<60 : Rem dalle 0:00 alle 0:59 
  593.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  594.  Else If M1NUTI>59 and M1NUTI<300 : Rem dalle 1:00 alle 4:59 
  595.   Print CONDIZIONEG$(7) : Rem La luna sta calando  
  596.  Else If M1NUTI>299 and M1NUTI<360 : Rem dalle 5:00 alle 5:59 
  597.   Print CONDIZIONEG$(0) : Rem Il cielo si sta schiarendo 
  598.  Else If M1NUTI>359 and M1NUTI<600 : Rem dalle 6:00 alle 9:59 
  599.   Print CONDIZIONEG$(1) : Rem Il sole si sta alzando 
  600.  Else If M1NUTI>599 and M1NUTI<900 : Rem dalle 10:00 alle 14:59   
  601.   Print CONDIZIONEG$(2) : Rem Il sole ï¿½ alto 
  602.  Else If M1NUTI>899 and M1NUTI<1140 : Rem dalle 15:00 alle 18:59   
  603.   Print CONDIZIONEG$(3) : Rem Il sole sta calando
  604.  Else If M1NUTI>1139 and M1NUTI<1200 : Rem dalle 19:00 alle 19:59 
  605.   Print CONDIZIONEG$(4) : Rem Il cielo si sta oscurando
  606.  Else If M1NUTI>1199 and M1NUTI<1380 : Rem dalle 20:00 alle 22:59 
  607.   Print CONDIZIONEG$(5) : Rem La luna si sta alzando 
  608.  Else : Rem dalle 23:00 alle 23:59 
  609.   Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  610.  End If 
  611. Else If CONDIZIONEG=1
  612.  Print CONDIZIONEG$(8) : Rem E' nuvoloso
  613. Else If CONDIZIONEG=2
  614.  Print CONDIZIONEG$(9) : Rem Sta piovendo 
  615. Else If CONDIZIONEG=3
  616.  Print CONDIZIONEG$(10) : Rem Sta nevicando  
  617. Else If CONDIZIONEG=4
  618.  Print CONDIZIONEG$(11) : Rem Sta grandinando  
  619. Else If CONDIZIONEG=5
  620.  Print CONDIZIONEG$(12) : Rem C'� la nebbia
  621. Else If CONDIZIONEG=6
  622.  Print CONDIZIONEG$(13) : Rem E' buio  
  623. End If 
  624. End Proc
  625. Procedure CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  626. SCOPODELGIOCO=AZIONEP(7,0)
  627. PARA=PARAAAZIONEP(7,0)
  628. PARB=PARABAZIONEP(7,0)
  629. PARC=PARACAZIONEP(7,0)
  630. If SCOPODELGIOCO=0
  631.  Pop Proc
  632. Else If SCOPODELGIOCO=1
  633. 'Dai al personaggio PARA PARB oggetti PARC 
  634.  OGGETTIDIA(PARC)=0
  635.  If OGGETTIDATIOLASCIATI(PARC)=PARB
  636.   For A=0 To NUMEROO
  637.    If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  638.     If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  639.      Inc OGGETTIDIA(CATEGORIAO(A))
  640.     End If 
  641.    End If 
  642.   Next A
  643.   If OGGETTIDIA(PARC)=PARB
  644.    FINEA(7,0)=True
  645.   End If 
  646.  End If 
  647. Else If SCOPODELGIOCO=2
  648. 'Dai al personaggio PARA PARB oggetti tipo PARC  
  649.  For A=0 To NUMEROO
  650.   If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  651.    If TIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  652.     Inc TIPODIOGGETTOPARC
  653.    End If 
  654.   End If 
  655.  Next A
  656.  If TIPODIOGGETTOPARC=PARB
  657.   FINEA(7,0)=True
  658.  End If 
  659. Else If SCOPODELGIOCO=3
  660. 'Dai a PARA PARB soldi 
  661.  If SOLDIRICEVUTIP(PARA)=PARB
  662.   FINEA(7,0)=True
  663.  End If 
  664. Else If SCOPODELGIOCO=4
  665. 'Guadagna PARA soldi 
  666.  If SOLDIP(0)>=PARA
  667.   FINEA(7,0)=True
  668.  End If 
  669. Else If SCOPODELGIOCO=5
  670. 'Lascia nel luogo PARA PARB oggetti PARC 
  671.  OGGETTIDIA(PARC)=0
  672.  For A=0 To NUMEROO
  673.   If POSIZIONEO(A)=PARA
  674.    If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  675.     Inc OGGETTIDIA(PARC)
  676.    End If 
  677.   End If 
  678.  Next A
  679.  If OGGETTIDIA(PARC)>=PARB
  680.   FINEA(7,0)=True
  681.  End If 
  682. Else If SCOPODELGIOCO=6
  683. 'Lascia nel luogo PARA PARB oggetti tipo PARC  
  684.  For A=0 To NUMEROO
  685.   If POSIZIONEO(A)=PARA
  686.    If PARATIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  687.     Inc OGGETTIDELTIPOPARC
  688.    End If 
  689.   End If 
  690.  Next A
  691.  If OGGETTIDELTIPOPARC>=PARB
  692.   FINEA(7,0)=True
  693.  End If 
  694. Else If SCOPODELGIOCO=7
  695. 'Lascia nel luogo PARA PARB soldi
  696.  If SOLDIL(PARA)>=PARB
  697.   FINEA(7,0)=True
  698.  End If 
  699. Else If SCOPODELGIOCO=8
  700. 'Prendi PARA oggetti PARB
  701.  If OGGETTIDELPERSONAGGIO0(PARB)=PARA
  702.   FINEA(7,0)=True
  703.  End If 
  704. Else If SCOPODELGIOCO=9
  705. 'Prendi  PARA oggetti tipo PARB
  706.  For A=0 To NUMEROO
  707.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  708.    If TIPOCO(CATEGORIAO(A))=PARB and Btst(1,TIPOO(A))=False
  709.     Inc TIPODIOGGETTOPARB
  710.    End If 
  711.   End If 
  712.  Next A
  713.  If TIPODIOGGETTOPARB=PARA
  714.   FINEA(7,0)=True
  715.  End If 
  716. Else If SCOPODELGIOCO=10
  717. 'Trova il personaggio PARA 
  718.  Proc PERSONAGGIOVISIBILE[PARA]
  719.  If PERSONAGGIOVISIBILEP(PARA)=True
  720.   FINEA(7,0)=True
  721.  End If 
  722. Else If SCOPODELGIOCO=11
  723. 'Uccidi il personaggio PARA  
  724.  If RESISTENZAP(PARA)=0
  725.   FINEA(7,0)=True
  726.  End If 
  727. Else If SCOPODELGIOCO=12
  728. 'Usa 1 oggetto PARA su 1 oggetto PARB
  729. If CATEGORIAO(OGGETTOUSANTE)=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  730.  FINEA(7,0)=True
  731. End If 
  732. Else If SCOPODELGIOCO=13
  733. 'Usa 1 oggetto PARA su 1 oggetto tipo PARB 
  734. If CATEGORIAO(OGGETTOUSANTE)=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  735.  FINEA(7,0)=True
  736. End If 
  737. Else If SCOPODELGIOCO=14
  738. 'Usa 1 oggetto PARA su PARB
  739. If CATEGORIAO(OGGETTOUSANTE)=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  740.  FINEA(7,0)=True
  741. End If 
  742. Else If SCOPODELGIOCO=15
  743. 'Usa 1 oggetto tipo PARA su 1 oggetto PARB 
  744. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  745.  FINEA(7,0)=True
  746. End If 
  747. Else If SCOPODELGIOCO=16
  748. 'Usa 1 oggetto tipo PARA su un oggetto tipo PARB 
  749. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  750.  FINEA(7,0)=True
  751. End If 
  752. Else If SCOPODELGIOCO=17
  753. 'Usa 1 oggetto tipo PARA su PARB 
  754. If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  755.  FINEA(7,0)=True
  756. End If 
  757. Else If SCOPODELGIOCO=18
  758. 'Vai nel luogo PARA
  759.  If POSIZIONEP(0)=PARA and TEMP0DIATTRAVERSAMENTOP(0)=0
  760.   FINEA(7,0)=True
  761.  End If 
  762. End If 
  763. End Proc
  764. Procedure CREAMAPPA
  765. Cls 
  766. Print At(0,ULTIMALINEA);"Vuoi creare una mappa dei luoghi o delle stanze (l/s) ?"
  767. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  768. If RISPOSTA$="l"
  769.  Repeat 
  770.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in luoghi (>2)>";LARGHEZZADELLAMAPPA$;
  771.   If LARGHEZZADELLAMAPPA$<>""
  772.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  773.    If LARGHEZZADELLAMAPPA<3
  774.     TIC["La larghezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  775.     Proc _ASPETTA
  776.    End If 
  777.   End If 
  778.  Until LARGHEZZADELLAMAPPA>2
  779.  Repeat 
  780.   Locate 0,ULTIMALINEA : Cline 
  781.   Input "Altezza della mappa in luoghi (>2)>";ALTEZZADELLAMAPPA$;
  782.   If ALTEZZADELLAMAPPA$<>""
  783.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  784.    If ALTEZZADELLAMAPPA<3
  785.     TIC["L'altezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  786.     Proc _ASPETTA
  787.    End If 
  788.   End If 
  789.  Until ALTEZZADELLAMAPPA>2
  790.  Repeat 
  791.   Locate 0,ULTIMALINEA : Cline 
  792.   Input "Luogo di partenza della mappa (>=0)>";LUOGODIPARTENZADELLAMAPPA$;
  793.   If LUOGODIAPRTENZADELLAMAPPA$<>""
  794.    LUOGODIPARTENZADELLAMAPPA=Val(LUOGODIPARTENZADELLAMAPPA$)
  795.    If LUOGODIAPRTENZADELLAMAPPA<0
  796.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  797.     Proc _ASPETTA
  798.    End If 
  799.   End If 
  800.  Until LUOGODIPARTENZADELLAMAPPA>=0
  801.  NUMEROLUOGHI=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  802.  If LUOGODIPARTENZADELLAMAPPA+NUMEROLUOGHI-1>NUMEROL
  803.   TIC["Numero dei luoghi disponibili uguale a"+Str$(NUMEROL+1)+"!",ULTIMALINEA]
  804.   Proc _ASPETTA
  805.  Else 
  806.   Locate 0,ULTIMALINEA : Cline : Print "Vuoi che i luoghi siano delimitati (s/n) ?"
  807.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  808.   If RISPOSTA$="s"
  809.    LIMITI=True
  810.   Else 
  811.    LIMITI=False
  812.   End If 
  813.   TIC["Sto creando la mappa dei luoghi...",ULTIMALINEA]
  814.   Proc _ASPETTA
  815.   Proc _ORDINALUOGHI[NUMEROLUOGHI-1,LARGHEZZADELLAMAPPA,LUOGODIPARTENZADELLLAMAPPA,LIMITI]
  816.  End If 
  817. Else If RISPOSTA$="s"
  818.  If NUMEROE=-1
  819.   Locate 0,ULTIMALINEA : Cline : Print "Non ci sono Edifici!"
  820.   Proc _ASPETTA : Pop Proc
  821.  Else If NUMEROE>0
  822.   Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  823.   If NUMEROEDIFICIO$<>""
  824.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  825.    Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  826.   End If 
  827.  End If 
  828.  Repeat 
  829.   Locate 0,ULTIMALINEA : Input "Larghezza della mappa in stanze (>2)>";LARGHEZZADELLAMAPPA$;
  830.   If LARGHEZZADELLAMAPPA$<>""
  831.    LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  832.    If LARGHEZZADELLAMAPPA<3
  833.     TIC["La larghezza deve essere almeno di tre stanze!",ULTIMALINEA]
  834.     Proc _ASPETTA
  835.    End If 
  836.   End If 
  837.  Until LARGHEZZADELLAMAPPA>2
  838.  Repeat 
  839.   Locate 0,ULTIMALINEA : Cline 
  840.   Input "Altezza della mappa in stanze (>2)>";ALTEZZADELLAMAPPA$;
  841.   If ALTEZZADELLAMAPPA$<>""
  842.    ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  843.    If ALTEZZADELLAMAPPA<3
  844.     TIC["L'altezza deve essere almeno di tre stanze!",ULTIMALINEA]
  845.     Proc _ASPETTA
  846.    End If 
  847.   End If 
  848.  Until ALTEZZADELLAMAPPA>2
  849.  Repeat 
  850.   Locate 0,ULTIMALINEA : Cline 
  851.   Input "Stanza di partenza della mappa (>=0)>";STANZADIPARTENZADELLAMAPPA$;
  852.   If STANZADIAPRTENZADELLAMAPPA$<>""
  853.    STANZADIPARTENZADELLAMAPPA=Val(STANZADIPARTENZADELLAMAPPA$)
  854.    If STANZADIAPRTENZADELLAMAPPA<0
  855.     TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  856.     Proc _ASPETTA
  857.    End If 
  858.   End If 
  859.  Until STANZADIPARTENZADELLAMAPPA>=0
  860.  NUMEROSTANZE=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  861.  If STANZADIPARTENZADELLAMAPPA+NUMEROSTANZE-1>NUMEROS(NUMEROEDIFICIO)
  862.   TIC["Numero delle stanze disponibili uguale a"+Str$(NUMEROS(NUMEROEDIFICIO)+1)+"!",ULTIMALINEA]
  863.   Proc _ASPETTA
  864.  Else 
  865.   TIC["Sto creando la mappa delle stanze...",ULTIMALINEA]
  866.   Proc _ASPETTA
  867.   Proc _ORDINASTANZE[NUMEROEDIFICIO,NUMEROSTANZE-1,LARGHEZZADELLAMAPPA,STANZADIPARTENZADELLLAMAPPA]
  868.  End If 
  869. End If 
  870. Curs Off 
  871. End Proc
  872. Procedure DABANCOAVARIABILI
  873. If Length(BANCO)>0
  874.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  875.  INDIRIZZO=Start(BANCO)+21
  876.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  877. 'Nemici attivi o no:   
  878.  Add INDIRIZZO,Len(DATO$)+1
  879.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  880.  ANEMICI=Val(DATO$)
  881.  Add INDIRIZZO,Len(DATO$)+1
  882.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  883. 'Numero delle categorie degli oggetti:   
  884.  Add INDIRIZZO,Len(DATO$)+1
  885.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  886.  NUMEROCO=Val(DATO$)
  887.  Add INDIRIZZO,Len(DATO$)+1
  888.  For A=0 To NUMEROCO
  889.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  890. 'Categoria A>  
  891.   Add INDIRIZZO,Len(DATO$)+1
  892.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  893. 'Nome singolare: 
  894.   Add INDIRIZZO,Len(DATO$)+1
  895.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  896.   NOMESCO$(A)=DATO$
  897.   Add INDIRIZZO,Len(DATO$)+1
  898.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  899. 'Nome plurale: 
  900.   Add INDIRIZZO,Len(DATO$)+1
  901.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  902.   NOMEPCO$(A)=DATO$
  903.    Add INDIRIZZO,Len(DATO$)+1
  904.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  905. 'Nome singolare resto: 
  906.   Add INDIRIZZO,Len(DATO$)+1
  907.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  908.   NOMESRO$(A)=DATO$
  909.   Add INDIRIZZO,Len(DATO$)+1
  910.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  911. 'Nome plurale resto: 
  912.   Add INDIRIZZO,Len(DATO$)+1
  913.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  914.   NOMEPRO$(A)=DATO$
  915.   Add INDIRIZZO,Len(DATO$)+1
  916.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  917. 'Peso: 
  918.   Add INDIRIZZO,Len(DATO$)+1
  919.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  920.   PESOCO(A)=Val(DATO$)
  921.   Add INDIRIZZO,Len(DATO$)+1
  922.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  923. 'Peso resto: 
  924.   Add INDIRIZZO,Len(DATO$)+1
  925.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  926.   PESORESTOCO(A)=Val(DATO$)
  927.   Add INDIRIZZO,Len(DATO$)+1
  928.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  929. 'Tipo:   
  930.   Add INDIRIZZO,Len(DATO$)+1
  931.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  932.   TIPOCO(A)=Val(DATO$)
  933.   Add INDIRIZZO,Len(DATO$)+1
  934.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  935. 'Parametro tipo:   
  936.   Add INDIRIZZO,Len(DATO$)+1
  937.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  938.   PARATIPOCO(A)=Val(DATO$)
  939.   Add INDIRIZZO,Len(DATO$)+1
  940.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  941. 'descrizione:  
  942.   Add INDIRIZZO,Len(DATO$)+1
  943.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  944.   DESCRIZIONECO$(A)=DATO$
  945.   Add INDIRIZZO,Len(DATO$)+1
  946.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  947. 'Oggetto del personaggio zero: 
  948.   Add INDIRIZZO,Len(DATO$)+1
  949.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  950.   OGGETTIDELPERSONAGGIO0(A)=Val(DATO$)
  951.   Add INDIRIZZO,Len(DATO$)+1
  952.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  953. 'Resto del personaggio zero: 
  954.   Add INDIRIZZO,Len(DATO$)+1
  955.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  956.   RESTIDELPERSONAGGIO0(A)=Val(DATO$)
  957.   Add INDIRIZZO,Len(DATO$)+1
  958.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  959. 'Oggetto dato: 
  960.   Add INDIRIZZO,Len(DATO$)+1
  961.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  962.   OGGETTIDATIOLASCIATI(A)=Val(DATO$)
  963.   Add INDIRIZZO,Len(DATO$)+1
  964.  Next A
  965.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  966. 'Numero degli edifici:   
  967.  Add INDIRIZZO,Len(DATO$)+1
  968.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  969.  NUMEROE=Val(DATO$)
  970.  Add INDIRIZZO,Len(DATO$)+1
  971.  If NUMEROE>-1
  972.   For A=0 To NUMEROE
  973.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  974. 'Edificio A>   
  975.    Add INDIRIZZO,Len(DATO$)+1
  976.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  977. 'Nome: 
  978.    Add INDIRIZZO,Len(DATO$)+1
  979.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  980.    NOMEE$(A)=DATO$
  981.    Add INDIRIZZO,Len(DATO$)+1
  982.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  983. 'Descrizione:  
  984.    Add INDIRIZZO,Len(DATO$)+1
  985.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  986.    DESCRIZIONEE$(A)=DATO$
  987.    Add INDIRIZZO,Len(DATO$)+1
  988.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  989. 'Numero delle stanze:  
  990.    Add INDIRIZZO,Len(DATO$)+1
  991.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  992.    NUMEROS(A)=Val(DATO$)
  993.    Add INDIRIZZO,Len(DATO$)+1
  994.    For B=0 To NUMEROS(A)
  995.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  996. 'Stanza A>   
  997.     Add INDIRIZZO,Len(DATO$)+1
  998.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  999. 'Nome: 
  1000.     Add INDIRIZZO,Len(DATO$)+1
  1001.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1002.     NOMES$(B,A)=DATO$
  1003.     Add INDIRIZZO,Len(DATO$)+1
  1004.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1005. 'Luogo Nord: 
  1006.     Add INDIRIZZO,Len(DATO$)+1
  1007.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1008.     DREZIONES(0,B,A)=Val(DATO$)
  1009.     Add INDIRIZZO,Len(DATO$)+1
  1010.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1011. 'Luogo NordEst:  
  1012.     Add INDIRIZZO,Len(DATO$)+1
  1013.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1014.     DREZIONES(1,B,A)=Val(DATO$)
  1015.     Add INDIRIZZO,Len(DATO$)+1
  1016.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1017. 'Luogo Est:  
  1018.     Add INDIRIZZO,Len(DATO$)+1
  1019.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1020.     DREZIONES(2,B,A)=Val(DATO$)
  1021.     Add INDIRIZZO,Len(DATO$)+1
  1022.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1023. 'Luogo SudEst: 
  1024.     Add INDIRIZZO,Len(DATO$)+1
  1025.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1026.     DREZIONES(3,B,A)=Val(DATO$)
  1027.     Add INDIRIZZO,Len(DATO$)+1
  1028.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1029. 'Luogo Sud:  
  1030.     Add INDIRIZZO,Len(DATO$)+1
  1031.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1032.     DREZIONES(4,B,A)=Val(DATO$)
  1033.     Add INDIRIZZO,Len(DATO$)+1
  1034.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1035. 'Luogo SudOvest: 
  1036.     Add INDIRIZZO,Len(DATO$)+1
  1037.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1038.     DREZIONES(5,B,A)=Val(DATO$)
  1039.     Add INDIRIZZO,Len(DATO$)+1
  1040.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1041. 'Luogo Ovest:  
  1042.     Add INDIRIZZO,Len(DATO$)+1
  1043.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1044.     DREZIONES(6,B,A)=Val(DATO$)
  1045.     Add INDIRIZZO,Len(DATO$)+1
  1046.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1047. 'Luogo NordOvest:  
  1048.     Add INDIRIZZO,Len(DATO$)+1
  1049.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1050.     DREZIONES(7,B,A)=Val(DATO$)
  1051.     Add INDIRIZZO,Len(DATO$)+1
  1052.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1053. 'Luogo Sopra:  
  1054.     Add INDIRIZZO,Len(DATO$)+1
  1055.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1056.     DREZIONES(8,B,A)=Val(DATO$)
  1057.     Add INDIRIZZO,Len(DATO$)+1
  1058.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1059. 'Luogo Sotto:  
  1060.     Add INDIRIZZO,Len(DATO$)+1
  1061.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1062.     DREZIONES(9,B,A)=Val(DATO$)
  1063.     Add INDIRIZZO,Len(DATO$)+1
  1064.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1065. 'Soldi nella stanza:   
  1066.     Add INDIRIZZO,Len(DATO$)+1
  1067.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1068.     SOLDIS(B,A)=Val(DATO$)
  1069.     Add INDIRIZZO,Len(DATO$)+1
  1070.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1071. 'Descrizione:  
  1072.     Add INDIRIZZO,Len(DATO$)+1
  1073.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1074.     DESCRIZIONES$(B,A)=DATO$
  1075.     Add INDIRIZZO,Len(DATO$)+1
  1076.    Next B
  1077.   Next A
  1078.  End If 
  1079.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1080. 'Numero dei luoghi:  
  1081.  Add INDIRIZZO,Len(DATO$)+1
  1082.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1083.  NUMEROL=Val(DATO$)
  1084.  Add INDIRIZZO,Len(DATO$)+1
  1085.  For A=0 To NUMEROL
  1086.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1087. 'Luogo A>  
  1088.   Add INDIRIZZO,Len(DATO$)+1
  1089.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1090. 'Nome: 
  1091.   Add INDIRIZZO,Len(DATO$)+1
  1092.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1093.   NOMEL$(A)=DATO$
  1094.   Add INDIRIZZO,Len(DATO$)+1
  1095.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1096. 'Luogo Nord: 
  1097.   Add INDIRIZZO,Len(DATO$)+1
  1098.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1099.   DREZIONEL(0,A)=Val(DATO$)
  1100.   Add INDIRIZZO,Len(DATO$)+1
  1101.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1102. 'Luogo NordEst:  
  1103.   Add INDIRIZZO,Len(DATO$)+1
  1104.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1105.   DREZIONEL(1,A)=Val(DATO$)
  1106.   Add INDIRIZZO,Len(DATO$)+1
  1107.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1108. 'Luogo Est:  
  1109.   Add INDIRIZZO,Len(DATO$)+1
  1110.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1111.   DREZIONEL(2,A)=Val(DATO$)
  1112.   Add INDIRIZZO,Len(DATO$)+1
  1113.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1114. 'Luogo SudEst: 
  1115.   Add INDIRIZZO,Len(DATO$)+1
  1116.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1117.   DREZIONEL(3,A)=Val(DATO$)
  1118.   Add INDIRIZZO,Len(DATO$)+1
  1119.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1120. 'Luogo Sud:  
  1121.   Add INDIRIZZO,Len(DATO$)+1
  1122.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1123.   DREZIONEL(4,A)=Val(DATO$)
  1124.   Add INDIRIZZO,Len(DATO$)+1
  1125.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1126. 'Luogo SudOvest: 
  1127.   Add INDIRIZZO,Len(DATO$)+1
  1128.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1129.   DREZIONEL(5,A)=Val(DATO$)
  1130.   Add INDIRIZZO,Len(DATO$)+1
  1131.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1132. 'Luogo Ovest:  
  1133.   Add INDIRIZZO,Len(DATO$)+1
  1134.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1135.   DREZIONEL(6,A)=Val(DATO$)
  1136.   Add INDIRIZZO,Len(DATO$)+1
  1137.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1138. 'Luogo NordOvest:  
  1139.   Add INDIRIZZO,Len(DATO$)+1
  1140.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1141.   DREZIONEL(7,A)=Val(DATO$)
  1142.   Add INDIRIZZO,Len(DATO$)+1
  1143.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1144. 'Luogo Sopra:  
  1145.   Add INDIRIZZO,Len(DATO$)+1
  1146.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1147.   DREZIONEL(8,A)=Val(DATO$)
  1148.   Add INDIRIZZO,Len(DATO$)+1
  1149.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1150. 'Luogo Sotto:  
  1151.   Add INDIRIZZO,Len(DATO$)+1
  1152.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1153.   DREZIONEL(9,A)=Val(DATO$)
  1154.   Add INDIRIZZO,Len(DATO$)+1
  1155.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1156. 'Soldi nel luogo:  
  1157.   Add INDIRIZZO,Len(DATO$)+1
  1158.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1159.   SOLDIL(A)=Val(DATO$)
  1160.   Add INDIRIZZO,Len(DATO$)+1
  1161.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1162. 'Regione del luogo:  
  1163.   Add INDIRIZZO,Len(DATO$)+1
  1164.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1165.   REGIONEL(A)=Val(DATO$)
  1166.   Add INDIRIZZO,Len(DATO$)+1
  1167.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1168. 'Tipo di luogo:  
  1169.   Add INDIRIZZO,Len(DATO$)+1
  1170.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1171.   TIPOL(A)=Val(DATO$)
  1172.   Add INDIRIZZO,Len(DATO$)+1
  1173.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1174. 'Descrizione:  
  1175.   Add INDIRIZZO,Len(DATO$)+1
  1176.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1177.   DESCRIZIONEL$(A)=DATO$
  1178.   Add INDIRIZZO,Len(DATO$)+1
  1179.  Next A
  1180.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1181. 'Numero degli oggetti:   
  1182.  Add INDIRIZZO,Len(DATO$)+1
  1183.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1184.  NUMEROO=Val(DATO$)
  1185.  Add INDIRIZZO,Len(DATO$)+1
  1186.  For A=0 To NUMEROO
  1187.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1188. 'Oggetto A>  
  1189.   Add INDIRIZZO,Len(DATO$)+1
  1190.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1191. 'Categoria:  
  1192.   Add INDIRIZZO,Len(DATO$)+1
  1193.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1194.   CATEGORIAO(A)=Val(DATO$)
  1195.   Add INDIRIZZO,Len(DATO$)+1
  1196.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1197. 'Posizione:  
  1198.   Add INDIRIZZO,Len(DATO$)+1
  1199.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1200.   POSIZIONEO(A)=Val(DATO$)
  1201.   Add INDIRIZZO,Len(DATO$)+1
  1202.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1203. 'Tipo:   
  1204.   Add INDIRIZZO,Len(DATO$)+1
  1205.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1206.   TIPOO(A)=Val(DATO$)
  1207.   Add INDIRIZZO,Len(DATO$)+1
  1208.  Next A
  1209.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1210. 'Numero dei personaggi:  
  1211.  Add INDIRIZZO,Len(DATO$)+1
  1212.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1213.  NUMEROP=Val(DATO$)
  1214.  Add INDIRIZZO,Len(DATO$)+1
  1215.  For A=0 To NUMEROP
  1216.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1217. 'Personaggio A>  
  1218.   Add INDIRIZZO,Len(DATO$)+1
  1219.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1220. 'Nome:   
  1221.   Add INDIRIZZO,Len(DATO$)+1
  1222.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1223.   NOMEP$(A)=DATO$
  1224.   Add INDIRIZZO,Len(DATO$)+1
  1225.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1226. 'Posizione:    
  1227.   Add INDIRIZZO,Len(DATO$)+1
  1228.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1229.   POSIZIONEP(A)=Val(DATO$)
  1230.   Add INDIRIZZO,Len(DATO$)+1
  1231.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1232. 'Costituzione:   
  1233.   Add INDIRIZZO,Len(DATO$)+1
  1234.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1235.   C0STITUZIONEP(A)=Val(DATO$)
  1236.   Add INDIRIZZO,Len(DATO$)+1
  1237.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1238. 'Destrezza:    
  1239.   Add INDIRIZZO,Len(DATO$)+1
  1240.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1241.   DESTREZZAP(A)=Val(DATO$)
  1242.   Add INDIRIZZO,Len(DATO$)+1
  1243.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1244. 'Forza:    
  1245.   Add INDIRIZZO,Len(DATO$)+1
  1246.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1247.   F0RZAP(A)=Val(DATO$)
  1248.   Add INDIRIZZO,Len(DATO$)+1
  1249.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1250. 'Peso:   
  1251.   Add INDIRIZZO,Len(DATO$)+1
  1252.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1253.   PESOP(A)=Val(DATO$)
  1254.   Add INDIRIZZO,Len(DATO$)+1
  1255.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1256. 'Peso netto:   
  1257.   Add INDIRIZZO,Len(DATO$)+1
  1258.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1259.   PESONETTOP(A)=Val(DATO$)
  1260.   Add INDIRIZZO,Len(DATO$)+1
  1261.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1262. 'Resistenza:   
  1263.   Add INDIRIZZO,Len(DATO$)+1
  1264.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1265.   RESISTENZAP(A)=Val(DATO$)
  1266.   Add INDIRIZZO,Len(DATO$)+1
  1267.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1268. 'Soldi:    
  1269.   Add INDIRIZZO,Len(DATO$)+1
  1270.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1271.   SOLDIP(A)=Val(DATO$)
  1272.   Add INDIRIZZO,Len(DATO$)+1
  1273.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1274. 'Tipo:   
  1275.   Add INDIRIZZO,Len(DATO$)+1
  1276.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1277.   TIPOP(A)=Val(DATO$)
  1278.   Add INDIRIZZO,Len(DATO$)+1
  1279.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1280. 'Descrizione:    
  1281.   Add INDIRIZZO,Len(DATO$)+1
  1282.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1283.   DESCRIZIONEP$(A)=DATO$
  1284.   Add INDIRIZZO,Len(DATO$)+1
  1285.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1286. 'Inizio sonno:   
  1287.   Add INDIRIZZO,Len(DATO$)+1
  1288.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1289.   INIZIOSONNOP(A)=Val(DATO$)
  1290.   Add INDIRIZZO,Len(DATO$)+1
  1291.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1292. 'Durata sonno:   
  1293.   Add INDIRIZZO,Len(DATO$)+1
  1294.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1295.   SONNOP(A)=Val(DATO$)
  1296.   Add INDIRIZZO,Len(DATO$)+1
  1297.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1298. 'Direzione presa:    
  1299.   Add INDIRIZZO,Len(DATO$)+1
  1300.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1301.   DREZIONEPRESAP(A)=Val(DATO$)
  1302.   Add INDIRIZZO,Len(DATO$)+1
  1303.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1304. 'Luogo di destinazione:    
  1305.   Add INDIRIZZO,Len(DATO$)+1
  1306.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1307.   LUOGODIDESTINAZIONEP(A)=Val(DATO$)
  1308.   Add INDIRIZZO,Len(DATO$)+1
  1309.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1310. 'Tempo di attraversamento:   
  1311.   Add INDIRIZZO,Len(DATO$)+1
  1312.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1313.   TEMP0DIATTRAVERSAMENTOP(A)=Val(DATO$)
  1314.   Add INDIRIZZO,Len(DATO$)+1
  1315.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1316. 'Soldi ricevuti:     
  1317.   Add INDIRIZZO,Len(DATO$)+1
  1318.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1319.   SOLDIRICEVUTIP(A)=Val(DATO$)
  1320.   Add INDIRIZZO,Len(DATO$)+1
  1321.   For B=0 To 7
  1322.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1323. 'Azione:   
  1324.    Add INDIRIZZO,Len(DATO$)+1
  1325.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1326.    AZIONEP(B,A)=Val(DATO$)
  1327.    Add INDIRIZZO,Len(DATO$)+1
  1328.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1329. 'Parametro A azione:   
  1330.    Add INDIRIZZO,Len(DATO$)+1
  1331.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1332.    PARAAAZIONEP(B,A)=Val(DATO$)
  1333.    Add INDIRIZZO,Len(DATO$)+1
  1334.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1335. 'Parametro B azione:   
  1336.    Add INDIRIZZO,Len(DATO$)+1
  1337.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1338.    PARABAZIONEP(B,A)=Val(DATO$)
  1339.    Add INDIRIZZO,Len(DATO$)+1
  1340.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1341. 'Parametro C azione:   
  1342.    Add INDIRIZZO,Len(DATO$)+1
  1343.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1344.    PARACAZIONEP(B,A)=Val(DATO$)
  1345.    Add INDIRIZZO,Len(DATO$)+1
  1346.   Next B
  1347.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1348. 'Posizione azione:   
  1349.   Add INDIRIZZO,Len(DATO$)+1
  1350.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1351.   POSIZIONEA(A)=Val(DATO$)
  1352.   Add INDIRIZZO,Len(DATO$)+1
  1353.  Next A
  1354.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1355. 'Numero delle regioni:   
  1356.  Add INDIRIZZO,Len(DATO$)+1
  1357.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1358.  NUMEROR=Val(DATO$)
  1359.  Add INDIRIZZO,Len(DATO$)+1
  1360.  For A=0 To NUMEROR
  1361.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1362. 'Regione A>  
  1363.   Add INDIRIZZO,Len(DATO$)+1
  1364.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1365. 'Nome:   
  1366.   Add INDIRIZZO,Len(DATO$)+1
  1367.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1368.   NOMER$(A)=DATO$
  1369.   Add INDIRIZZO,Len(DATO$)+1
  1370.  Next A
  1371.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1372. 'Giornata:     
  1373.  Add INDIRIZZO,Len(DATO$)+1
  1374.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1375.  CONDIZIONEG=Val(DATO$)
  1376.  Add INDIRIZZO,Len(DATO$)+1
  1377.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1378. 'Tempo trascorso:    
  1379.  Add INDIRIZZO,Len(DATO$)+1
  1380.  DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1381.  TEMP0TRASCORSO=Val(DATO$)
  1382.  Add INDIRIZZO,Len(DATO$)+1
  1383.  If INDIRIZZO=Start(BANCO)+Length(BANCO)
  1384.   Proc TIC["Conversione dati avvenuta",ULTIMALINEA] : Proc _ASPETTA
  1385.  Else 
  1386.   Proc TIC["Conversione dati fallita",ULTIMALINEA] : Proc _ASPETTA
  1387.   Proc INIZIALIZZALEVARIABILI
  1388.  End If 
  1389.  Erase BANCO
  1390. End If 
  1391. End Proc
  1392. Procedure DAI
  1393. For A=1 To NUMEROP
  1394.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIRICEVENTI
  1395. Next A
  1396. If PERSONAGGIRICEVENTI>0
  1397.  For A=0 To NUMEROCO
  1398.   If OGGETTIDELPERSONAGGIO0(A)>0
  1399.    Inc CATEGORIEOGGETTI
  1400.   End If 
  1401.   If RESTIDELPERSONAGGIO0(A)>0
  1402.    Inc CATEGORIEOGGETTI
  1403.   End If 
  1404.  Next A
  1405.  For A=1 To NUMEROP
  1406.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  1407.    Inc PERSONAGGIDADARE
  1408.   End If 
  1409.  Next A
  1410.  If SOLDIP(0)>0
  1411.   SOLDIDADARE=True
  1412.  End If 
  1413.  If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1414.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto, un personaggio o dei soldi (o/p/s) ?>";
  1415.   OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  1416.   OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  1417.   If OGGETTOPERSONAGGIOOSOLDI$="o"
  1418.    Proc DAIUNOGGETTO
  1419.   Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  1420.    Proc DAIUNPERSONAGGIO
  1421.   Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  1422.    Proc DAIDEISOLDI
  1423.   End If 
  1424.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1425.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
  1426.   OGGETTOOSOLDI$=Input$(1)
  1427.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  1428.   If OGGETTOOSOLDI$="o"
  1429.    Proc DAIUNOGGETTO
  1430.   Else If OGGETTOOSOLDI$="s"
  1431.    Proc DAIDEISOLDI
  1432.   End If 
  1433.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1434.   Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
  1435.   PERSONAGGIOOSOLDI$=Input$(1)
  1436.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  1437.   If PERSONAGGIOOSOLDI$="p"
  1438.    Proc DAIUNPERSONAGGIO
  1439.   Else If PERSONAGGIOOSOLDI$="s"
  1440.    Proc DAIDEISOLDI
  1441.   End If 
  1442.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1443.   Proc DAIDEISOLDI
  1444.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1445.   Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
  1446.   OGGETTOOPERSONAGGIO$=Input$(1)
  1447.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  1448.   If OGGETTOOPERSONAGGIO$="o"
  1449.    Proc DAIUNOGGETTO
  1450.   Else If OGGETTOOPERSONAGGIO$="p"
  1451.    Proc DAIUNPERSONAGGIO
  1452.   End If 
  1453.  Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
  1454.   Proc DAIUNOGGETTO
  1455.  Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1456.   Proc DAIUNPERSONAGGIO
  1457.  Else 
  1458.   Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
  1459.   If _MUSICA=False
  1460.    Bell 1
  1461.   End If 
  1462.   Proc _ASPETTA
  1463.  End If 
  1464. Else 
  1465.  Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
  1466.  If _MUSICA=False
  1467.   Bell 1
  1468.  End If 
  1469.  Proc _ASPETTA
  1470. End If 
  1471. End Proc
  1472. Procedure DAIAPAO[AZIONE,P]
  1473. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1474. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1475.  PERSONAGGIOTROVATO=A
  1476. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1477.  PERSONAGGIOTROVATO=A
  1478. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1479.  PERSONAGGIOTROVATO=A
  1480. End If 
  1481. If PERSONAGGIOTROVATO>-1
  1482.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1483.  For A=0 To NUMEROO
  1484.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1485.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1486.    B=A
  1487.   End If 
  1488.  Next A
  1489.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1490.   Pop Proc
  1491.  End If 
  1492.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1493.   A=B
  1494.  Else 
  1495.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1496.   B=0
  1497.   For A=0 To NUMEROO
  1498.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1499.     OGGETTODELPERSONAGGIOP(B)=A
  1500.     Inc B
  1501.    End If 
  1502.   Next A
  1503.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1504.  End If 
  1505.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1506.  If Btst(1,TIPOO(A))=True
  1507.   If PERSONAGGIOTROVATO=0
  1508.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1509.   End If 
  1510.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1511.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1512.  Else 
  1513.   If PERSONAGGIOTROVATO=0
  1514.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1515.   End If 
  1516.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1517.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1518.  End If 
  1519.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1520.   For B=0 To NUMEROO
  1521.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1522.     If Btst(1,TIPOO(B))=True
  1523.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1524.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1525.     Else 
  1526.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1527.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1528.     End If 
  1529.    End If 
  1530.   Next B
  1531.   For B=1 To NUMEROP
  1532.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1533.     Add PESONETTOP(P),-PESOP(B)*1000
  1534.     Add PESONETTOP(P),-PESONETTOP(B)
  1535.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1536.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1537.    End If 
  1538.   Next B
  1539.  End If 
  1540.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1541.   If PERSONAGGIOTROVATO=0
  1542.    Print NOMEP$(P);" ti d� 1 ";
  1543.   Else 
  1544.    Print NOMEP$(P);" d� 1 ";
  1545.   End If 
  1546.   If Btst(1,TIPOO(A))=True
  1547.    Print NOMESRO$(CATEGORIAO(A));
  1548.   Else 
  1549.    Print NOMESCO$(CATEGORIAO(A));
  1550.   End If 
  1551.   If PERSONAGGIOTROVATO=0
  1552.    Print 
  1553.   Else 
  1554.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1555.   End If 
  1556.  End If 
  1557.  Dec PARAAAZIONEP(AZIONE,P)
  1558.  If PARAAAZIONEP(AZIONE,P)=0
  1559.   FINEA(AZIONE,P)=True
  1560.  End If 
  1561. End If 
  1562. End Proc
  1563. Procedure DAIAPAOB[AZIONE,P]
  1564. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1565. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1566.  PERSONAGGIOTROVATO=A
  1567. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1568.  PERSONAGGIOTROVATO=A
  1569. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1570.  PERSONAGGIOTROVATO=A
  1571. End If 
  1572. If PERSONAGGIOTROVATO>-1
  1573.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1574.  For A=0 To NUMEROO
  1575.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1576.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1577.    B=A
  1578.   End If 
  1579.  Next A
  1580.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1581.   Pop Proc
  1582.  End If 
  1583.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1584.   A=B
  1585.  Else 
  1586.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1587.   B=0
  1588.   For A=0 To NUMEROO
  1589.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1590.     OGGETTODELPERSONAGGIOP(B)=A
  1591.     Inc B
  1592.    End If 
  1593.   Next A
  1594.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1595.  End If 
  1596.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1597.  If Btst(1,TIPOO(A))=True
  1598.   If PERSONAGGIOTROVATO=0
  1599.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1600.   End If 
  1601.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1602.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1603.  Else 
  1604.   If PERSONAGGIOTROVATO=0
  1605.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1606.   End If 
  1607.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1608.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1609.  End If 
  1610.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1611.   For B=0 To NUMEROO
  1612.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1613.     If Btst(1,TIPOO(B))=True
  1614.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1615.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1616.     Else 
  1617.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1618.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1619.     End If 
  1620.    End If 
  1621.   Next B
  1622.   For B=1 To NUMEROP
  1623.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1624.     Add PESONETTOP(P),-PESOP(B)*1000
  1625.     Add PESONETTOP(P),-PESONETTOP(B)
  1626.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1627.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1628.    End If 
  1629.   Next B
  1630.  End If 
  1631.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1632.   If PERSONAGGIOTROVATO=0
  1633.    Print NOMEP$(P);" ti d� 1 ";
  1634.   Else 
  1635.    Print NOMEP$(P);" d� 1 ";
  1636.   End If 
  1637.   If Btst(1,TIPOO(A))=True
  1638.    Print NOMESRO$(CATEGORIAO(A));
  1639.   Else 
  1640.    Print NOMESCO$(CATEGORIAO(A));
  1641.   End If 
  1642.   If PERSONAGGIOTROVATO=0
  1643.    Print 
  1644.   Else 
  1645.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1646.   End If 
  1647.  End If 
  1648.  Dec PARAAAZIONEP(AZIONE,P)
  1649.  If PARAAAZIONEP(AZIONE,P)=0
  1650.   FINEA(AZIONE,P)=True
  1651.  End If 
  1652. End If 
  1653. End Proc
  1654. Procedure DAIAPAOTB[AZIONE,P]
  1655. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1656. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1657.  PERSONAGGIOTROVATO=A
  1658. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1659.  PERSONAGGIOTROVATO=A
  1660. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1661.  PERSONAGGIOTROVATO=A
  1662. End If 
  1663. If PERSONAGGIOTROVATO>-1
  1664.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1665.  For A=0 To NUMEROO
  1666.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1667.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1668.    B=A
  1669.   End If 
  1670.  Next A
  1671.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1672.   Pop Proc
  1673.  End If 
  1674.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1675.   A=B
  1676.  Else 
  1677.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1678.   B=0
  1679.   For A=0 To NUMEROO
  1680.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1681.     OGGETTODELPERSONAGGIOP(B)=A
  1682.     Inc B
  1683.    End If 
  1684.   Next A
  1685.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1686.  End If 
  1687.  For A=0 To NUMEROO
  1688.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1689.    POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1690.    If Btst(1,TIPOO(A))=True
  1691.     If PERSONAGGIOTROVATO=0
  1692.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1693.     End If 
  1694.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1695.     Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1696.    Else 
  1697.     If PERSONAGGIOTROVATO=0
  1698.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1699.     End If 
  1700.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1701.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1702.    End If 
  1703.    If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1704.     For B=0 To NUMEROO
  1705.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1706.       If Btst(1,TIPOO(B))=True
  1707.        Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1708.        Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1709.       Else 
  1710.        Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1711.        Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1712.       End If 
  1713.      End If 
  1714.     Next B
  1715.     For B=1 To NUMEROP
  1716.      If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1717.       Add PESONETTOP(P),-PESOP(B)*1000
  1718.       Add PESONETTOP(P),-PESONETTOP(B)
  1719.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1720.       Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1721.      End If 
  1722.     Next B
  1723.    End If 
  1724.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1725.     If PERSONAGGIOTROVATO=0
  1726.      Print NOMEP$(P);" ti d� 1 ";
  1727.     Else 
  1728.      Print NOMEP$(P);" d� 1 ";
  1729.     End If 
  1730.     If Btst(1,TIPOO(A))=True
  1731.      Print NOMESRO$(CATEGORIAO(A));
  1732.     Else 
  1733.      Print NOMESCO$(CATEGORIAO(A));
  1734.     End If 
  1735.     If PERSONAGGIOTROVATO=0
  1736.      Print 
  1737.     Else 
  1738.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1739.     End If 
  1740.    End If 
  1741.    Dec PARAAAZIONEP(AZIONE,P)
  1742.    If PARAAAZIONEP(AZIONE,P)=0
  1743.     FINEA(AZIONE,P)=True
  1744.    End If 
  1745.    Exit 
  1746.   End If 
  1747.  Next A
  1748. End If 
  1749. End Proc
  1750. Procedure DAIAPAP[AZIONE,P]
  1751. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1752. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1753.  PERSONAGGIOTROVATO=A
  1754. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1755.  PERSONAGGIOTROVATO=A
  1756. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1757.  PERSONAGGIOTROVATO=A
  1758. End If 
  1759. If PERSONAGGIOTROVATO>-1
  1760.  For A=0 To NUMEROP
  1761.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1762.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1763.    Add PESONETTOP(P),-PESOP(A)*1000
  1764.    Add PESONETTOP(P),-PESONETTOP(A)
  1765.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1766.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1767.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1768.     If PERSONAGGIOTROVATO=0
  1769.      Print NOMEP$(P);" ti d� ";
  1770.     Else 
  1771.      Print NOMEP$(P);" d� ";
  1772.     End If 
  1773.     Print NOMEP$(A);
  1774.     If PERSONAGGIOTROVATO=0
  1775.      Print 
  1776.     Else 
  1777.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1778.     End If 
  1779.    End If 
  1780.    Dec PARAAAZIONEP(AZIONE,P)
  1781.    If PARAAAZIONEP(AZIONE,P)=0
  1782.     FINEA(AZIONE,P)=True
  1783.    End If 
  1784.    Exit 
  1785.   End If 
  1786.  Next A
  1787. End If 
  1788. End Proc
  1789. Procedure DAIAPPA[AZIONE,P]
  1790. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1791. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1792.  PERSONAGGIOTROVATO=A
  1793. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1794.  PERSONAGGIOTROVATO=A
  1795. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1796.  PERSONAGGIOTROVATO=A
  1797. End If 
  1798. If PERSONAGGIOTROVATO>-1
  1799.  A=PARAAAZIONEP(AZIONE,P)
  1800.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1801.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1802.   Add PESONETTOP(P),-PESOP(A)*1000
  1803.   Add PESONETTOP(P),-PESONETTOP(A)
  1804.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1805.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1806.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1807.    If PERSONAGGIOTROVATO=0
  1808.     Print NOMEP$(P);" ti d� ";
  1809.    Else 
  1810.     Print NOMEP$(P);" d� ";
  1811.    End If 
  1812.    Print NOMEP$(A);
  1813.    If PERSONAGGIOTROVATO=0
  1814.     Print 
  1815.    Else 
  1816.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1817.    End If 
  1818.   End If 
  1819.   FINEA(AZIONE,P)=True
  1820.  End If 
  1821. End If 
  1822. End Proc
  1823. Procedure DAIAPABO[AZIONE,P]
  1824. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1825. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1826.  PERSONAGGIOTROVATO=A
  1827. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1828.  PERSONAGGIOTROVATO=A
  1829. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1830.  PERSONAGGIOTROVATO=A
  1831. End If 
  1832. If PERSONAGGIOTROVATO>-1
  1833.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1834.  For A=0 To NUMEROO
  1835.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1836.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1837.    B=A
  1838.   End If 
  1839.  Next A
  1840.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1841.   Pop Proc
  1842.  End If 
  1843.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1844.   A=B
  1845.  Else 
  1846.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1847.   B=0
  1848.   For A=0 To NUMEROO
  1849.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1850.     OGGETTODELPERSONAGGIOP(B)=A
  1851.     Inc B
  1852.    End If 
  1853.   Next A
  1854.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1855.  End If 
  1856.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1857.  If Btst(1,TIPOO(A))=True
  1858.   If PERSONAGGIOTROVATO=0
  1859.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1860.   End If 
  1861.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1862.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1863.  Else 
  1864.   If PERSONAGGIOTROVATO=0
  1865.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1866.   End If 
  1867.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1868.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1869.  End If 
  1870.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1871.   For B=0 To NUMEROO
  1872.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1873.     If Btst(1,TIPOO(B))=True
  1874.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1875.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1876.     Else 
  1877.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1878.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1879.     End If 
  1880.    End If 
  1881.   Next B
  1882.   For B=1 To NUMEROP
  1883.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1884.     Add PESONETTOP(P),-PESOP(B)*1000
  1885.     Add PESONETTOP(P),-PESONETTOP(B)
  1886.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1887.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1888.    End If 
  1889.   Next B
  1890.  End If 
  1891.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1892.   If PERSONAGGIOTROVATO=0
  1893.    Print NOMEP$(P);" ti d� 1 ";
  1894.   Else 
  1895.    Print NOMEP$(P);" d� 1 ";
  1896.   End If 
  1897.   If Btst(1,TIPOO(A))=True
  1898.    Print NOMESRO$(CATEGORIAO(A));
  1899.   Else 
  1900.    Print NOMESCO$(CATEGORIAO(A));
  1901.   End If 
  1902.   If PERSONAGGIOTROVATO=0
  1903.    Print 
  1904.   Else 
  1905.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1906.   End If 
  1907.  End If 
  1908.  Dec PARABAZIONEP(AZIONE,P)
  1909.  If PARABAZIONEP(AZIONE,P)=0
  1910.   FINEA(AZIONE,P)=True
  1911.  End If 
  1912. End If 
  1913. End Proc
  1914. Procedure DAIAPABOC[AZIONE,P]
  1915. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1916. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1917.  PERSONAGGIOTROVATO=A
  1918. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1919.  PERSONAGGIOTROVATO=A
  1920. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1921.  PERSONAGGIOTROVATO=A
  1922. End If 
  1923. If PERSONAGGIOTROVATO>-1
  1924.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  1925.  For A=0 To NUMEROO
  1926.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1927.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  1928.    B=A
  1929.   End If 
  1930.  Next A
  1931.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  1932.   Pop Proc
  1933.  End If 
  1934.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  1935.   A=B
  1936.  Else 
  1937.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  1938.   B=0
  1939.   For A=0 To NUMEROO
  1940.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1941.     OGGETTODELPERSONAGGIOP(B)=A
  1942.     Inc B
  1943.    End If 
  1944.   Next A
  1945.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  1946.  End If 
  1947.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1948.  If Btst(1,TIPOO(A))=True
  1949.   If PERSONAGGIOTROVATO=0
  1950.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  1951.   End If 
  1952.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1953.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1954.  Else 
  1955.   If PERSONAGGIOTROVATO=0
  1956.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  1957.   End If 
  1958.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1959.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1960.  End If 
  1961.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1962.   For B=0 To NUMEROO
  1963.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1964.     If Btst(1,TIPOO(B))=True
  1965.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1966.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1967.     Else 
  1968.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1969.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1970.     End If 
  1971.    End If 
  1972.   Next B
  1973.   For B=1 To NUMEROP
  1974.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1975.     Add PESONETTOP(P),-PESOP(B)*1000
  1976.     Add PESONETTOP(P),-PESONETTOP(B)
  1977.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1978.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1979.    End If 
  1980.   Next B
  1981.  End If 
  1982.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1983.   If PERSONAGGIOTROVATO=0
  1984.    Print NOMEP$(P);" ti d� 1 ";
  1985.   Else 
  1986.    Print NOMEP$(P);" d� 1 ";
  1987.   End If 
  1988.   If Btst(1,TIPOO(A))=True
  1989.    Print NOMESRO$(CATEGORIAO(A));
  1990.   Else 
  1991.    Print NOMESCO$(CATEGORIAO(A));
  1992.   End If 
  1993.   If PERSONAGGIOTROVATO=0
  1994.    Print 
  1995.   Else 
  1996.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1997.   End If 
  1998.  End If 
  1999.  Dec PARABAZIONEP(AZIONE,P)
  2000.  If PARABAZIONEP(AZIONE,P)=0
  2001.   FINEA(AZIONE,P)=True
  2002.  End If 
  2003. End If 
  2004. End Proc
  2005. Procedure DAIAPABOTC[AZIONE,P]
  2006. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2007. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2008.  PERSONAGGIOTROVATO=A
  2009. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2010.  PERSONAGGIOTROVATO=A
  2011. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2012.  PERSONAGGIOTROVATO=A
  2013. End If 
  2014. If PERSONAGGIOTROVATO>-1
  2015.  NUMEROOGGETTIDELPERSONAGGIOP=-1
  2016.  For A=0 To NUMEROO
  2017.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2018.    Inc NUMEROOGGETTIDELPERSONAGGIOP
  2019.    B=A
  2020.   End If 
  2021.  Next A
  2022.  If NUMEROOGGETTIDELPERSONAGGIOP=-1
  2023.   Pop Proc
  2024.  End If 
  2025.  If NUMEROOGGETTIDELPERSONAGGIOP=0
  2026.   A=B
  2027.  Else 
  2028.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  2029.   B=0
  2030.   For A=0 To NUMEROO
  2031.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2032.     OGGETTODELPERSONAGGIOP(B)=A
  2033.     Inc B
  2034.    End If 
  2035.   Next A
  2036.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  2037.  End If 
  2038.  POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  2039.  If Btst(1,TIPOO(A))=True
  2040.   If PERSONAGGIOTROVATO=0
  2041.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  2042.   End If 
  2043.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  2044.   Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  2045.  Else 
  2046.   If PERSONAGGIOTROVATO=0
  2047.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  2048.   End If 
  2049.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  2050.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  2051.  End If 
  2052.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  2053.   For B=0 To NUMEROO
  2054.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  2055.     If Btst(1,TIPOO(B))=True
  2056.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  2057.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  2058.     Else 
  2059.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  2060.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  2061.     End If 
  2062.    End If 
  2063.   Next B
  2064.   For B=1 To NUMEROP
  2065.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  2066.     Add PESONETTOP(P),-PESOP(B)*1000
  2067.     Add PESONETTOP(P),-PESONETTOP(B)
  2068.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  2069.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  2070.    End If 
  2071.   Next B
  2072.  End If 
  2073.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2074.   If PERSONAGGIOTROVATO=0
  2075.    Print NOMEP$(P);" ti d� 1 ";
  2076.   Else 
  2077.    Print NOMEP$(P);" d� 1 ";
  2078.   End If 
  2079.   If Btst(1,TIPOO(A))=True
  2080.    Print NOMESRO$(CATEGORIAO(A));
  2081.   Else 
  2082.    Print NOMESCO$(CATEGORIAO(A));
  2083.   End If 
  2084.   If PERSONAGGIOTROVATO=0
  2085.    Print 
  2086.   Else 
  2087.    Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2088.   End If 
  2089.  End If 
  2090.  Dec PARABAZIONEP(AZIONE,P)
  2091.  If PARABAZIONEP(AZIONE,P)=0
  2092.   FINEA(AZIONE,P)=True
  2093.  End If 
  2094. End If 
  2095. End Proc
  2096. Procedure DAIAPABP[AZIONE,P]
  2097. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2098. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2099.  PERSONAGGIOTROVATO=A
  2100. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2101.  PERSONAGGIOTROVATO=A
  2102. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2103.  PERSONAGGIOTROVATO=A
  2104. End If 
  2105. If PERSONAGGIOTROVATO>-1
  2106.  For A=0 To NUMEROP
  2107.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2108.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2109.    Add PESONETTOP(P),-PESOP(A)*1000
  2110.    Add PESONETTOP(P),-PESONETTOP(A)
  2111.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2112.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2113.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2114.     If PERSONAGGIOTROVATO=0
  2115.      Print NOMEP$(P);" ti d� ";
  2116.     Else 
  2117.      Print NOMEP$(P);" d� ";
  2118.     End If 
  2119.     Print NOMEP$(A);
  2120.     If PERSONAGGIOTROVATO=0
  2121.      Print 
  2122.     Else 
  2123.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2124.     End If 
  2125.    End If 
  2126.    Dec PARABAZIONEP(AZIONE,P)
  2127.    If PARABAZIONEP(AZIONE,P)=0
  2128.     FINEA(AZIONE,P)=True
  2129.    End If 
  2130.    Exit 
  2131.   End If 
  2132.  Next A
  2133. End If 
  2134. End Proc
  2135. Procedure DAIAPAPB[AZIONE,P]
  2136. A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2137. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2138.  PERSONAGGIOTROVATO=A
  2139. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2140.  PERSONAGGIOTROVATO=A
  2141. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2142.  PERSONAGGIOTROVATO=A
  2143. End If 
  2144. If PERSONAGGIOTROVATO>-1
  2145.  A=PARABAZIONEP(AZIONE,P)
  2146.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2147.   POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2148.   Add PESONETTOP(P),-PESOP(A)*1000
  2149.   Add PESONETTOP(P),-PESONETTOP(A)
  2150.   Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2151.   Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2152.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2153.    If PERSONAGGIOTROVATO=0
  2154.     Print NOMEP$(P);" ti d� ";
  2155.    Else 
  2156.     Print NOMEP$(P);" d� ";
  2157.    End If 
  2158.    Print NOMEP$(A);
  2159.    If PERSONAGGIOTROVATO=0
  2160.     Print 
  2161.    Else 
  2162.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2163.    End If 
  2164.   End If 
  2165.   FINEA(AZIONE,P)=True
  2166.  End If 
  2167. End If 
  2168. End Proc
  2169. Procedure DAIDEISOLDI
  2170. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi dare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDIDADARE$;
  2171. Curs Off 
  2172. If SOLDIDADARE$<>""
  2173.  SOLDIDADARE=Val(SOLDIDADARE$)
  2174.  Proc LIMITI[SOLDIDADARE,0,SOLDIP(0)] : SOLDIDADARE=Param
  2175.  If SOLDIDADARE>0
  2176.   Add SOLDIP(0),-SOLDIDADARE*PESOS
  2177.   Proc PERSONAGGIORICEVENTE["S",SOLDIDADARE]
  2178.  End If 
  2179. End If 
  2180. End Proc
  2181. Procedure DAIUNOGGETTO
  2182. For A=0 To NUMEROCO
  2183.  If OGGETTIDELPERSONAGGIO0(A)>0
  2184.   Inc CATEGORIEOGGETTI
  2185.  End If 
  2186.  If RESTIDELPERSONAGGIO0(A)>0
  2187.   Inc CATEGORIEOGGETTI
  2188.  End If 
  2189. Next A
  2190. If CATEGORIEOGGETTI>0
  2191.  If CATEGORIEOGGETTI>1
  2192.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi dare ?>";OGGETTO$;
  2193.   Curs Off 
  2194.   For A=0 To NUMEROO
  2195.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2196.     If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  2197.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2198.     Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  2199.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2200.     End If 
  2201.    End If 
  2202.   Next A
  2203.  Else 
  2204.   For A=0 To NUMEROO
  2205.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2206.     Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2207.    End If 
  2208.   Next A
  2209.  End If 
  2210. End If 
  2211. End Proc
  2212. Procedure DAIUNPERSONAGGIO
  2213. For A=1 To NUMEROP
  2214.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2215.   Inc PERSONAGGI
  2216.  End If 
  2217. Next A
  2218. If PERSONAGGI>0
  2219.  If PERSONAGGI>1
  2220.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi dare ?>";PERSONAGGIO$;
  2221.   Curs Off 
  2222.   For A=0 To NUMEROP
  2223.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2224.     Proc PERSONAGGIORICEVENTE["P",A]
  2225.     Exit 
  2226.    End If 
  2227.   Next A
  2228.   If A=NUMEROP+1
  2229.    Locate 0,ULTIMALINEA : Cline : Print "Non trasporti nessun ";PERSONAGGIO$;
  2230.    If _MUSICA=False
  2231.     Bell 1
  2232.    End If 
  2233.    Proc _ASPETTA
  2234.   End If 
  2235.  Else 
  2236.   For A=0 To NUMEROP
  2237.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2238.     Proc PERSONAGGIORICEVENTE["P",A]
  2239.    End If 
  2240.   Next A
  2241.  End If 
  2242. End If 
  2243. End Proc
  2244. Procedure DAVARIABILIABANCO[M0DO]
  2245. Shared LUNGHEZZABANCO
  2246. SENZAMEMORIA=False
  2247. If M0DO=True
  2248.  TIC["Vuoi salvare anche il tempo trascorso di gioco (s/n) ?",ULTIMALINEA]
  2249.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  2250.  If RISPOSTA$="s"
  2251.   TEMP0TRASCORSODASALVARE=TEMP0TRASCORSO
  2252.  Else 
  2253.   TEMP0TRASCORSODASALVARE=0
  2254.  End If 
  2255.  TIC["Un attimo che converto i dati...",ULTIMALINEA]
  2256.  Reserve As Work BANCO,LUNGHEZZABANCO
  2257.  INDIRIZZO=Start(BANCO)
  2258.  Poke$ INDIRIZZO,"Adventures Conceiver"+Chr$(10)
  2259.  Add INDIRIZZO,21
  2260.  DATO$="Nemici attivi o no:"+Chr$(10)
  2261.  Poke$ INDIRIZZO,DATO$
  2262.  Add INDIRIZZO,Len(DATO$)
  2263.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2264.  Poke$ INDIRIZZO,DATO$
  2265.  Add INDIRIZZO,Len(DATO$)
  2266.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2267.  Poke$ INDIRIZZO,DATO$
  2268.  Add INDIRIZZO,Len(DATO$)
  2269.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2270.  Poke$ INDIRIZZO,DATO$
  2271.  Add INDIRIZZO,Len(DATO$)
  2272.  For A=0 To NUMEROCO
  2273.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2274.   Poke$ INDIRIZZO,DATO$
  2275.   Add INDIRIZZO,Len(DATO$)
  2276.   DATO$="Nome singolare:"+Chr$(10)
  2277.   Poke$ INDIRIZZO,DATO$
  2278.   Add INDIRIZZO,Len(DATO$)
  2279.   DATO$=NOMESCO$(A)+Chr$(10)
  2280.   Poke$ INDIRIZZO,DATO$
  2281.   Add INDIRIZZO,Len(DATO$)
  2282.   DATO$="Nome plurale:"+Chr$(10)
  2283.   Poke$ INDIRIZZO,DATO$
  2284.   Add INDIRIZZO,Len(DATO$)
  2285.   DATO$=NOMEPCO$(A)+Chr$(10)
  2286.   Poke$ INDIRIZZO,DATO$
  2287.   Add INDIRIZZO,Len(DATO$)
  2288.   DATO$="Nome singolare resto:"+Chr$(10)
  2289.   Poke$ INDIRIZZO,DATO$
  2290.   Add INDIRIZZO,Len(DATO$)
  2291.   DATO$=NOMESRO$(A)+Chr$(10)
  2292.   Poke$ INDIRIZZO,DATO$
  2293.   Add INDIRIZZO,Len(DATO$)
  2294.   DATO$="Nome plurale resto:"+Chr$(10)
  2295.   Poke$ INDIRIZZO,DATO$
  2296.   Add INDIRIZZO,Len(DATO$)
  2297.   DATO$=NOMEPRO$(A)+Chr$(10)
  2298.   Poke$ INDIRIZZO,DATO$
  2299.   Add INDIRIZZO,Len(DATO$)
  2300.   DATO$="Peso:"+Chr$(10)
  2301.   Poke$ INDIRIZZO,DATO$
  2302.   Add INDIRIZZO,Len(DATO$)
  2303.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2304.   Poke$ INDIRIZZO,DATO$
  2305.   Add INDIRIZZO,Len(DATO$)
  2306.   DATO$="Peso resto:"+Chr$(10)
  2307.   Poke$ INDIRIZZO,DATO$
  2308.   Add INDIRIZZO,Len(DATO$)
  2309.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2310.   Poke$ INDIRIZZO,DATO$
  2311.   Add INDIRIZZO,Len(DATO$)
  2312.   DATO$="Tipo:"+Chr$(10)
  2313.   Poke$ INDIRIZZO,DATO$
  2314.   Add INDIRIZZO,Len(DATO$)
  2315.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2316.   Poke$ INDIRIZZO,DATO$
  2317.   Add INDIRIZZO,Len(DATO$)
  2318.   DATO$="Parametro tipo:"+Chr$(10)
  2319.   Poke$ INDIRIZZO,DATO$
  2320.   Add INDIRIZZO,Len(DATO$)
  2321.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2322.   Poke$ INDIRIZZO,DATO$
  2323.   Add INDIRIZZO,Len(DATO$)
  2324.   DATO$="Descrizione:"+Chr$(10)
  2325.   Poke$ INDIRIZZO,DATO$
  2326.   Add INDIRIZZO,Len(DATO$)
  2327.   DATO$=DESCRIZIONECO$(A)+"|"
  2328.   Poke$ INDIRIZZO,DATO$
  2329.   Add INDIRIZZO,Len(DATO$)
  2330.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2331.   Poke$ INDIRIZZO,DATO$
  2332.   Add INDIRIZZO,Len(DATO$)
  2333.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2334.   Poke$ INDIRIZZO,DATO$
  2335.   Add INDIRIZZO,Len(DATO$)
  2336.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2337.   Poke$ INDIRIZZO,DATO$
  2338.   Add INDIRIZZO,Len(DATO$)
  2339.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2340.   Poke$ INDIRIZZO,DATO$
  2341.   Add INDIRIZZO,Len(DATO$)
  2342.   DATO$="Oggetto dato:"+Chr$(10)
  2343.   Poke$ INDIRIZZO,DATO$
  2344.   Add INDIRIZZO,Len(DATO$)
  2345.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2346.   Poke$ INDIRIZZO,DATO$
  2347.   Add INDIRIZZO,Len(DATO$)
  2348.  Next A
  2349.  DATO$="Numero degli edifici:"+Chr$(10)
  2350.  Poke$ INDIRIZZO,DATO$
  2351.  Add INDIRIZZO,Len(DATO$)
  2352.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2353.  Poke$ INDIRIZZO,DATO$
  2354.  Add INDIRIZZO,Len(DATO$)
  2355.  If NUMERO>-1
  2356.   For A=0 To NUMEROE
  2357.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2358.    Poke$ INDIRIZZO,DATO$
  2359.    Add INDIRIZZO,Len(DATO$)
  2360.    DATO$="Nome:"+Chr$(10)
  2361.    Poke$ INDIRIZZO,DATO$
  2362.    Add INDIRIZZO,Len(DATO$)
  2363.    DATO$=NOMEE$(A)+Chr$(10)
  2364.    Poke$ INDIRIZZO,DATO$
  2365.    Add INDIRIZZO,Len(DATO$)
  2366.    DATO$="Descrizione:"+Chr$(10)
  2367.    Poke$ INDIRIZZO,DATO$
  2368.    Add INDIRIZZO,Len(DATO$)
  2369.    DATO$=DESCRIZIONEE$(A)+"|"
  2370.    Poke$ INDIRIZZO,DATO$
  2371.    Add INDIRIZZO,Len(DATO$)
  2372.    DATO$="Numero delle stanze:"+Chr$(10)
  2373.    Poke$ INDIRIZZO,DATO$
  2374.    Add INDIRIZZO,Len(DATO$)
  2375.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2376.    Poke$ INDIRIZZO,DATO$
  2377.    Add INDIRIZZO,Len(DATO$)
  2378.    For B=0 To NUMEROS(A)
  2379.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2380.     Poke$ INDIRIZZO,DATO$
  2381.     Add INDIRIZZO,Len(DATO$)
  2382.     DATO$="Nome:"+Chr$(10)
  2383.     Poke$ INDIRIZZO,DATO$
  2384.     Add INDIRIZZO,Len(DATO$)
  2385.     DATO$=NOMES$(B,A)+Chr$(10)
  2386.     Poke$ INDIRIZZO,DATO$
  2387.     Add INDIRIZZO,Len(DATO$)
  2388.     DATO$="Luogo a Nord:"+Chr$(10)
  2389.     Poke$ INDIRIZZO,DATO$
  2390.     Add INDIRIZZO,Len(DATO$)
  2391.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2392.     Poke$ INDIRIZZO,DATO$
  2393.     Add INDIRIZZO,Len(DATO$)
  2394.     DATO$="Luogo a NordEst:"+Chr$(10)
  2395.     Poke$ INDIRIZZO,DATO$
  2396.     Add INDIRIZZO,Len(DATO$)
  2397.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2398.     Poke$ INDIRIZZO,DATO$
  2399.     Add INDIRIZZO,Len(DATO$)
  2400.     DATO$="Luogo a Est:"+Chr$(10)
  2401.     Poke$ INDIRIZZO,DATO$
  2402.     Add INDIRIZZO,Len(DATO$)
  2403.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2404.     Poke$ INDIRIZZO,DATO$
  2405.     Add INDIRIZZO,Len(DATO$)
  2406.     DATO$="Luogo a SudEst:"+Chr$(10)
  2407.     Poke$ INDIRIZZO,DATO$
  2408.     Add INDIRIZZO,Len(DATO$)
  2409.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2410.     Poke$ INDIRIZZO,DATO$
  2411.     Add INDIRIZZO,Len(DATO$)
  2412.     DATO$="Luogo a Sud:"+Chr$(10)
  2413.     Poke$ INDIRIZZO,DATO$
  2414.     Add INDIRIZZO,Len(DATO$)
  2415.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2416.     Poke$ INDIRIZZO,DATO$
  2417.     Add INDIRIZZO,Len(DATO$)
  2418.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2419.     Poke$ INDIRIZZO,DATO$
  2420.     Add INDIRIZZO,Len(DATO$)
  2421.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2422.     Poke$ INDIRIZZO,DATO$
  2423.     Add INDIRIZZO,Len(DATO$)
  2424.     DATO$="Luogo a Ovest:"+Chr$(10)
  2425.     Poke$ INDIRIZZO,DATO$
  2426.     Add INDIRIZZO,Len(DATO$)
  2427.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2428.     Poke$ INDIRIZZO,DATO$
  2429.     Add INDIRIZZO,Len(DATO$)
  2430.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2431.     Poke$ INDIRIZZO,DATO$
  2432.     Add INDIRIZZO,Len(DATO$)
  2433.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2434.     Poke$ INDIRIZZO,DATO$
  2435.     Add INDIRIZZO,Len(DATO$)
  2436.     DATO$="Luogo Sopra:"+Chr$(10)
  2437.     Poke$ INDIRIZZO,DATO$
  2438.     Add INDIRIZZO,Len(DATO$)
  2439.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2440.     Poke$ INDIRIZZO,DATO$
  2441.     Add INDIRIZZO,Len(DATO$)
  2442.     DATO$="Luogo Sotto:"+Chr$(10)
  2443.     Poke$ INDIRIZZO,DATO$
  2444.     Add INDIRIZZO,Len(DATO$)
  2445.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2446.     Poke$ INDIRIZZO,DATO$
  2447.     Add INDIRIZZO,Len(DATO$)
  2448.     DATO$="Soldi:"+Chr$(10)
  2449.     Poke$ INDIRIZZO,DATO$
  2450.     Add INDIRIZZO,Len(DATO$)
  2451.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2452.     Poke$ INDIRIZZO,DATO$
  2453.     Add INDIRIZZO,Len(DATO$)
  2454.     DATO$="Descrizione:"+Chr$(10)
  2455.     Poke$ INDIRIZZO,DATO$
  2456.     Add INDIRIZZO,Len(DATO$)
  2457.     DATO$=DESCRIZIONES$(B,A)+"|"
  2458.     Poke$ INDIRIZZO,DATO$
  2459.     Add INDIRIZZO,Len(DATO$)
  2460.    Next B
  2461.   Next A
  2462.  End If 
  2463.  DATO$="Numero dei luoghi:"+Chr$(10)
  2464.  Poke$ INDIRIZZO,DATO$
  2465.  Add INDIRIZZO,Len(DATO$)
  2466.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2467.  Poke$ INDIRIZZO,DATO$
  2468.  Add INDIRIZZO,Len(DATO$)
  2469.  For A=0 To NUMEROL
  2470.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2471.   Poke$ INDIRIZZO,DATO$
  2472.   Add INDIRIZZO,Len(DATO$)
  2473.   DATO$="Nome:"+Chr$(10)
  2474.   Poke$ INDIRIZZO,DATO$
  2475.   Add INDIRIZZO,Len(DATO$)
  2476.   DATO$=NOMEL$(A)+Chr$(10)
  2477.   Poke$ INDIRIZZO,DATO$
  2478.   Add INDIRIZZO,Len(DATO$)
  2479.   DATO$="Luogo a Nord:"+Chr$(10)
  2480.   Poke$ INDIRIZZO,DATO$
  2481.   Add INDIRIZZO,Len(DATO$)
  2482.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2483.   Poke$ INDIRIZZO,DATO$
  2484.   Add INDIRIZZO,Len(DATO$)
  2485.   DATO$="Luogo a NordEst:"+Chr$(10)
  2486.   Poke$ INDIRIZZO,DATO$
  2487.   Add INDIRIZZO,Len(DATO$)
  2488.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  2489.   Poke$ INDIRIZZO,DATO$
  2490.   Add INDIRIZZO,Len(DATO$)
  2491.   DATO$="Luogo a Est:"+Chr$(10)
  2492.   Poke$ INDIRIZZO,DATO$
  2493.   Add INDIRIZZO,Len(DATO$)
  2494.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  2495.   Poke$ INDIRIZZO,DATO$
  2496.   Add INDIRIZZO,Len(DATO$)
  2497.   DATO$="Luogo a SudEst:"+Chr$(10)
  2498.   Poke$ INDIRIZZO,DATO$
  2499.   Add INDIRIZZO,Len(DATO$)
  2500.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  2501.   Poke$ INDIRIZZO,DATO$
  2502.   Add INDIRIZZO,Len(DATO$)
  2503.   DATO$="Luogo a Sud:"+Chr$(10)
  2504.   Poke$ INDIRIZZO,DATO$
  2505.   Add INDIRIZZO,Len(DATO$)
  2506.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  2507.   Poke$ INDIRIZZO,DATO$
  2508.   Add INDIRIZZO,Len(DATO$)
  2509.   DATO$="Luogo a SudOvest:"+Chr$(10)
  2510.   Poke$ INDIRIZZO,DATO$
  2511.   Add INDIRIZZO,Len(DATO$)
  2512.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  2513.   Poke$ INDIRIZZO,DATO$
  2514.   Add INDIRIZZO,Len(DATO$)
  2515.   DATO$="Luogo a Ovest:"+Chr$(10)
  2516.   Poke$ INDIRIZZO,DATO$
  2517.   Add INDIRIZZO,Len(DATO$)
  2518.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  2519.   Poke$ INDIRIZZO,DATO$
  2520.   Add INDIRIZZO,Len(DATO$)
  2521.   DATO$="Luogo a NordOvest:"+Chr$(10)
  2522.   Poke$ INDIRIZZO,DATO$
  2523.   Add INDIRIZZO,Len(DATO$)
  2524.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  2525.   Poke$ INDIRIZZO,DATO$
  2526.   Add INDIRIZZO,Len(DATO$)
  2527.   DATO$="Luogo Sopra:"+Chr$(10)
  2528.   Poke$ INDIRIZZO,DATO$
  2529.   Add INDIRIZZO,Len(DATO$)
  2530.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  2531.   Poke$ INDIRIZZO,DATO$
  2532.   Add INDIRIZZO,Len(DATO$)
  2533.   DATO$="Luogo Sotto:"+Chr$(10)
  2534.   Poke$ INDIRIZZO,DATO$
  2535.   Add INDIRIZZO,Len(DATO$)
  2536.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  2537.   Poke$ INDIRIZZO,DATO$
  2538.   Add INDIRIZZO,Len(DATO$)
  2539.   DATO$="Soldi:"+Chr$(10)
  2540.   Poke$ INDIRIZZO,DATO$
  2541.   Add INDIRIZZO,Len(DATO$)
  2542.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  2543.   Poke$ INDIRIZZO,DATO$
  2544.   Add INDIRIZZO,Len(DATO$)
  2545.   DATO$="Regione:"+Chr$(10)
  2546.   Poke$ INDIRIZZO,DATO$
  2547.   Add INDIRIZZO,Len(DATO$)
  2548.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  2549.   Poke$ INDIRIZZO,DATO$
  2550.   Add INDIRIZZO,Len(DATO$)
  2551.   DATO$="Tipo di luogo:"+Chr$(10)
  2552.   Poke$ INDIRIZZO,DATO$
  2553.   Add INDIRIZZO,Len(DATO$)
  2554.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  2555.   Poke$ INDIRIZZO,DATO$
  2556.   Add INDIRIZZO,Len(DATO$)
  2557.   DATO$="Descrizione:"+Chr$(10)
  2558.   Poke$ INDIRIZZO,DATO$
  2559.   Add INDIRIZZO,Len(DATO$)
  2560.   DATO$=DESCRIZIONEL$(A)+"|"
  2561.   Poke$ INDIRIZZO,DATO$
  2562.   Add INDIRIZZO,Len(DATO$)
  2563.  Next A
  2564.  DATO$="Numero degli oggetti:"+Chr$(10)
  2565.  Poke$ INDIRIZZO,DATO$
  2566.  Add INDIRIZZO,Len(DATO$)
  2567.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  2568.  Poke$ INDIRIZZO,DATO$
  2569.  Add INDIRIZZO,Len(DATO$)
  2570.  For A=0 To NUMEROO
  2571.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  2572.   Poke$ INDIRIZZO,DATO$
  2573.   Add INDIRIZZO,Len(DATO$)
  2574.   DATO$="Categoria:"+Chr$(10)
  2575.   Poke$ INDIRIZZO,DATO$
  2576.   Add INDIRIZZO,Len(DATO$)
  2577.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  2578.   Poke$ INDIRIZZO,DATO$
  2579.   Add INDIRIZZO,Len(DATO$)
  2580.   DATO$="Posizione:"+Chr$(10)
  2581.   Poke$ INDIRIZZO,DATO$
  2582.   Add INDIRIZZO,Len(DATO$)
  2583.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  2584.   Poke$ INDIRIZZO,DATO$
  2585.   Add INDIRIZZO,Len(DATO$)
  2586.   DATO$="Tipo:"+Chr$(10)
  2587.   Poke$ INDIRIZZO,DATO$
  2588.   Add INDIRIZZO,Len(DATO$)
  2589.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  2590.   Poke$ INDIRIZZO,DATO$
  2591.   Add INDIRIZZO,Len(DATO$)
  2592.  Next A
  2593.  DATO$="Numero dei personaggi:"+Chr$(10)
  2594.  Poke$ INDIRIZZO,DATO$
  2595.  Add INDIRIZZO,Len(DATO$)
  2596.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  2597.  Poke$ INDIRIZZO,DATO$
  2598.  Add INDIRIZZO,Len(DATO$)
  2599.  For A=0 To NUMEROP
  2600.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  2601.   Poke$ INDIRIZZO,DATO$
  2602.   Add INDIRIZZO,Len(DATO$)
  2603.   DATO$="Nome:"+Chr$(10)
  2604.   Poke$ INDIRIZZO,DATO$
  2605.   Add INDIRIZZO,Len(DATO$)
  2606.   DATO$=NOMEP$(A)+Chr$(10)
  2607.   Poke$ INDIRIZZO,DATO$
  2608.   Add INDIRIZZO,Len(DATO$)
  2609.   DATO$="Posizione:"+Chr$(10)
  2610.   Poke$ INDIRIZZO,DATO$
  2611.   Add INDIRIZZO,Len(DATO$)
  2612.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  2613.   Poke$ INDIRIZZO,DATO$
  2614.   Add INDIRIZZO,Len(DATO$)
  2615.   DATO$="Costituzione:"+Chr$(10)
  2616.   Poke$ INDIRIZZO,DATO$
  2617.   Add INDIRIZZO,Len(DATO$)
  2618.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  2619.   Poke$ INDIRIZZO,DATO$
  2620.   Add INDIRIZZO,Len(DATO$)
  2621.   DATO$="Destrezza:"+Chr$(10)
  2622.   Poke$ INDIRIZZO,DATO$
  2623.   Add INDIRIZZO,Len(DATO$)
  2624.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  2625.   Poke$ INDIRIZZO,DATO$
  2626.   Add INDIRIZZO,Len(DATO$)
  2627.   DATO$="Forza:"+Chr$(10)
  2628.   Poke$ INDIRIZZO,DATO$
  2629.   Add INDIRIZZO,Len(DATO$)
  2630.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  2631.   Poke$ INDIRIZZO,DATO$
  2632.   Add INDIRIZZO,Len(DATO$)
  2633.   DATO$="Peso:"+Chr$(10)
  2634.   Poke$ INDIRIZZO,DATO$
  2635.   Add INDIRIZZO,Len(DATO$)
  2636.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  2637.   Poke$ INDIRIZZO,DATO$
  2638.   Add INDIRIZZO,Len(DATO$)
  2639.   DATO$="Peso netto:"+Chr$(10)
  2640.   Poke$ INDIRIZZO,DATO$
  2641.   Add INDIRIZZO,Len(DATO$)
  2642.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  2643.   Poke$ INDIRIZZO,DATO$
  2644.   Add INDIRIZZO,Len(DATO$)
  2645.   DATO$="Resistenza:"+Chr$(10)
  2646.   Poke$ INDIRIZZO,DATO$
  2647.   Add INDIRIZZO,Len(DATO$)
  2648.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  2649.   Poke$ INDIRIZZO,DATO$
  2650.   Add INDIRIZZO,Len(DATO$)
  2651.   DATO$="Soldi:"+Chr$(10)
  2652.   Poke$ INDIRIZZO,DATO$
  2653.   Add INDIRIZZO,Len(DATO$)
  2654.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  2655.   Poke$ INDIRIZZO,DATO$
  2656.   Add INDIRIZZO,Len(DATO$)
  2657.   DATO$="Tipo:"+Chr$(10)
  2658.   Poke$ INDIRIZZO,DATO$
  2659.   Add INDIRIZZO,Len(DATO$)
  2660.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  2661.   Poke$ INDIRIZZO,DATO$
  2662.   Add INDIRIZZO,Len(DATO$)
  2663.   DATO$="Descrizione:"+Chr$(10)
  2664.   Poke$ INDIRIZZO,DATO$
  2665.   Add INDIRIZZO,Len(DATO$)
  2666.   DATO$=DESCRIZIONEP$(A)+"|"
  2667.   Poke$ INDIRIZZO,DATO$
  2668.   Add INDIRIZZO,Len(DATO$)
  2669.   DATO$="Inizio sonno:"+Chr$(10)
  2670.   Poke$ INDIRIZZO,DATO$
  2671.   Add INDIRIZZO,Len(DATO$)
  2672.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  2673.   Poke$ INDIRIZZO,DATO$
  2674.   Add INDIRIZZO,Len(DATO$)
  2675.   DATO$="Durata sonno:"+Chr$(10)
  2676.   Poke$ INDIRIZZO,DATO$
  2677.   Add INDIRIZZO,Len(DATO$)
  2678.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  2679.   Poke$ INDIRIZZO,DATO$
  2680.   Add INDIRIZZO,Len(DATO$)
  2681.   DATO$="Direzione presa:"+Chr$(10)
  2682.   Poke$ INDIRIZZO,DATO$
  2683.   Add INDIRIZZO,Len(DATO$)
  2684.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  2685.   Poke$ INDIRIZZO,DATO$
  2686.   Add INDIRIZZO,Len(DATO$)
  2687.   DATO$="Luogo di destinazione:"+Chr$(10)
  2688.   Poke$ INDIRIZZO,DATO$
  2689.   Add INDIRIZZO,Len(DATO$)
  2690.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  2691.   Poke$ INDIRIZZO,DATO$
  2692.   Add INDIRIZZO,Len(DATO$)
  2693.   DATO$="Tempo di attraversamento:"+Chr$(10)
  2694.   Poke$ INDIRIZZO,DATO$
  2695.   Add INDIRIZZO,Len(DATO$)
  2696.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  2697.   Poke$ INDIRIZZO,DATO$
  2698.   Add INDIRIZZO,Len(DATO$)
  2699.   DATO$="Soldi ricevuti:"+Chr$(10)
  2700.   Poke$ INDIRIZZO,DATO$
  2701.   Add INDIRIZZO,Len(DATO$)
  2702.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  2703.   Poke$ INDIRIZZO,DATO$
  2704.   Add INDIRIZZO,Len(DATO$)
  2705.   For B=0 To 7
  2706.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  2707.    Poke$ INDIRIZZO,DATO$
  2708.    Add INDIRIZZO,Len(DATO$)
  2709.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  2710.    Poke$ INDIRIZZO,DATO$
  2711.    Add INDIRIZZO,Len(DATO$)
  2712.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  2713.    Poke$ INDIRIZZO,DATO$
  2714.    Add INDIRIZZO,Len(DATO$)
  2715.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  2716.    Poke$ INDIRIZZO,DATO$
  2717.    Add INDIRIZZO,Len(DATO$)
  2718.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  2719.    Poke$ INDIRIZZO,DATO$
  2720.    Add INDIRIZZO,Len(DATO$)
  2721.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  2722.    Poke$ INDIRIZZO,DATO$
  2723.    Add INDIRIZZO,Len(DATO$)
  2724.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  2725.    Poke$ INDIRIZZO,DATO$
  2726.    Add INDIRIZZO,Len(DATO$)
  2727.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  2728.    Poke$ INDIRIZZO,DATO$
  2729.    Add INDIRIZZO,Len(DATO$)
  2730.   Next B
  2731.   DATO$="Posizione azione:"+Chr$(10)
  2732.   Poke$ INDIRIZZO,DATO$
  2733.   Add INDIRIZZO,Len(DATO$)
  2734.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  2735.   Poke$ INDIRIZZO,DATO$
  2736.   Add INDIRIZZO,Len(DATO$)
  2737.  Next A
  2738.  DATO$="Numero delle regioni:"+Chr$(10)
  2739.  Poke$ INDIRIZZO,DATO$
  2740.  Add INDIRIZZO,Len(DATO$)
  2741.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  2742.  Poke$ INDIRIZZO,DATO$
  2743.  Add INDIRIZZO,Len(DATO$)
  2744.  For A=0 To NUMEROR
  2745.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  2746.   Poke$ INDIRIZZO,DATO$
  2747.   Add INDIRIZZO,Len(DATO$)
  2748.   DATO$="Nome:"+Chr$(10)
  2749.   Poke$ INDIRIZZO,DATO$
  2750.   Add INDIRIZZO,Len(DATO$)
  2751.   DATO$=NOMER$(A)+Chr$(10)
  2752.   Poke$ INDIRIZZO,DATO$
  2753.   Add INDIRIZZO,Len(DATO$)
  2754.  Next A
  2755.  DATO$="Giornata:"+Chr$(10)
  2756.  Poke$ INDIRIZZO,DATO$
  2757.  Add INDIRIZZO,Len(DATO$)
  2758.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  2759.  Poke$ INDIRIZZO,DATO$
  2760.  Add INDIRIZZO,Len(DATO$)
  2761.  DATO$="Tempo trascorso:"+Chr$(10)
  2762.  Poke$ INDIRIZZO,DATO$
  2763.  Add INDIRIZZO,Len(DATO$)
  2764.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  2765.  Poke$ INDIRIZZO,DATO$
  2766.  Add INDIRIZZO,Len(DATO$)
  2767.  If INDIRIZZO>Start(BANCO)+Length(BANCO)
  2768.   Proc TIC["Conversione dati fallita!",ULTIMALINEA]
  2769.   Proc _ASPETTA
  2770.   SENZAMEMORIA=True
  2771.  End If 
  2772. Else 
  2773.  Cls 
  2774.  Proc TIC["Sto calcolando la lunghezza del banco dei dati...",ULTIMALINEA]
  2775.  INDIRIZZO=21
  2776.  Print At(0,0);"Lunghezza banco>";Str$(INDIRIZZO)-" ";" Byte"
  2777.  DATO$="Nemici attivi o no:"+Chr$(10)
  2778.  Add INDIRIZZO,Len(DATO$)
  2779.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2780.  DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2781.  Add INDIRIZZO,Len(DATO$)
  2782.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2783.  DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2784.  Add INDIRIZZO,Len(DATO$)
  2785.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2786.  DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2787.  Add INDIRIZZO,Len(DATO$)
  2788.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2789.  For A=0 To NUMEROCO
  2790.   DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2791.   Add INDIRIZZO,Len(DATO$)
  2792.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2793.   DATO$="Nome singolare:"+Chr$(10)
  2794.   Add INDIRIZZO,Len(DATO$)
  2795.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2796.   DATO$=NOMESCO$(A)+Chr$(10)
  2797.   Add INDIRIZZO,Len(DATO$)
  2798.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2799.   DATO$="Nome plurale:"+Chr$(10)
  2800.   Add INDIRIZZO,Len(DATO$)
  2801.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2802.   DATO$=NOMEPCO$(A)+Chr$(10)
  2803.   Add INDIRIZZO,Len(DATO$)
  2804.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2805.   DATO$="Nome singolare resto:"+Chr$(10)
  2806.   Add INDIRIZZO,Len(DATO$)
  2807.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2808.   DATO$=NOMESRO$(A)+Chr$(10)
  2809.   Add INDIRIZZO,Len(DATO$)
  2810.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2811.   DATO$="Nome plurale resto:"+Chr$(10)
  2812.   Add INDIRIZZO,Len(DATO$)
  2813.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2814.   DATO$=NOMEPRO$(A)+Chr$(10)
  2815.   Add INDIRIZZO,Len(DATO$)
  2816.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2817.   DATO$="Peso:"+Chr$(10)
  2818.   Add INDIRIZZO,Len(DATO$)
  2819.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2820.   DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2821.   Add INDIRIZZO,Len(DATO$)
  2822.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2823.   DATO$="Peso resto:"+Chr$(10)
  2824.   Add INDIRIZZO,Len(DATO$)
  2825.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2826.   DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2827.   Add INDIRIZZO,Len(DATO$)
  2828.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2829.   DATO$="Tipo:"+Chr$(10)
  2830.   Add INDIRIZZO,Len(DATO$)
  2831.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2832.   DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2833.   Add INDIRIZZO,Len(DATO$)
  2834.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2835.   DATO$="Parametro tipo:"+Chr$(10)
  2836.   Add INDIRIZZO,Len(DATO$)
  2837.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2838.   DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2839.   Add INDIRIZZO,Len(DATO$)
  2840.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2841.   DATO$="Descrizione:"+Chr$(10)
  2842.   Add INDIRIZZO,Len(DATO$)
  2843.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2844.   DATO$=DESCRIZIONECO$(A)+"|"
  2845.   Add INDIRIZZO,Len(DATO$)
  2846.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2847.   DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2848.   Add INDIRIZZO,Len(DATO$)
  2849.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2850.   DATO$=Str$(OGGETTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2851.   Add INDIRIZZO,Len(DATO$)
  2852.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2853.   DATO$="Resto del personaggio zero:"+Chr$(10)
  2854.   Add INDIRIZZO,Len(DATO$)
  2855.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2856.   DATO$=Str$(RESTIDELPERSONAGGIO0(A))-" "+Chr$(10)
  2857.   Add INDIRIZZO,Len(DATO$)
  2858.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2859.   DATO$="Oggetto dato:"+Chr$(10)
  2860.   Add INDIRIZZO,Len(DATO$)
  2861.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2862.   DATO$=Str$(OGGETTIDATIOLASCIATI(A))-" "+Chr$(10)
  2863.   Add INDIRIZZO,Len(DATO$)
  2864.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2865.  Next A
  2866.  DATO$="Numero degli edifici:"+Chr$(10)
  2867.  Add INDIRIZZO,Len(DATO$)
  2868.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2869.  DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2870.  Add INDIRIZZO,Len(DATO$)
  2871.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2872.  If NUMERO>-1
  2873.   For A=0 To NUMEROE
  2874.    DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2875.    Add INDIRIZZO,Len(DATO$)
  2876.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2877.    DATO$="Nome:"+Chr$(10)
  2878.    Add INDIRIZZO,Len(DATO$)
  2879.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2880.    DATO$=NOMEE$(A)+Chr$(10)
  2881.    Add INDIRIZZO,Len(DATO$)
  2882.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2883.    DATO$="Descrizione:"+Chr$(10)
  2884.    Add INDIRIZZO,Len(DATO$)
  2885.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2886.    DATO$=DESCRIZIONEE$(A)+"|"
  2887.    Add INDIRIZZO,Len(DATO$)
  2888.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2889.    DATO$="Numero delle stanze:"+Chr$(10)
  2890.    Add INDIRIZZO,Len(DATO$)
  2891.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2892.    DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2893.    Add INDIRIZZO,Len(DATO$)
  2894.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2895.    For B=0 To NUMEROS(A)
  2896.     DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2897.     Add INDIRIZZO,Len(DATO$)
  2898.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2899.     DATO$="Nome:"+Chr$(10)
  2900.     Add INDIRIZZO,Len(DATO$)
  2901.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2902.     DATO$=NOMES$(B,A)+Chr$(10)
  2903.     Add INDIRIZZO,Len(DATO$)
  2904.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2905.     DATO$="Luogo a Nord:"+Chr$(10)
  2906.     Add INDIRIZZO,Len(DATO$)
  2907.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2908.     DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2909.     Add INDIRIZZO,Len(DATO$)
  2910.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2911.     DATO$="Luogo a NordEst:"+Chr$(10)
  2912.     Add INDIRIZZO,Len(DATO$)
  2913.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2914.     DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2915.     Add INDIRIZZO,Len(DATO$)
  2916.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2917.     DATO$="Luogo a Est:"+Chr$(10)
  2918.     Add INDIRIZZO,Len(DATO$)
  2919.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2920.     DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2921.     Add INDIRIZZO,Len(DATO$)
  2922.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2923.     DATO$="Luogo a SudEst:"+Chr$(10)
  2924.     Add INDIRIZZO,Len(DATO$)
  2925.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2926.     DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2927.     Add INDIRIZZO,Len(DATO$)
  2928.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2929.     DATO$="Luogo a Sud:"+Chr$(10)
  2930.     Add INDIRIZZO,Len(DATO$)
  2931.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2932.     DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2933.     Add INDIRIZZO,Len(DATO$)
  2934.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2935.     DATO$="Luogo a SudOvest:"+Chr$(10)
  2936.     Add INDIRIZZO,Len(DATO$)
  2937.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2938.     DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2939.     Add INDIRIZZO,Len(DATO$)
  2940.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2941.     DATO$="Luogo a Ovest:"+Chr$(10)
  2942.     Add INDIRIZZO,Len(DATO$)
  2943.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2944.     DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2945.     Add INDIRIZZO,Len(DATO$)
  2946.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2947.     DATO$="Luogo a NordOvest:"+Chr$(10)
  2948.     Add INDIRIZZO,Len(DATO$)
  2949.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2950.     DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2951.     Add INDIRIZZO,Len(DATO$)
  2952.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2953.     DATO$="Luogo Sopra:"+Chr$(10)
  2954.     Add INDIRIZZO,Len(DATO$)
  2955.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2956.     DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2957.     Add INDIRIZZO,Len(DATO$)
  2958.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2959.     DATO$="Luogo Sotto:"+Chr$(10)
  2960.     Add INDIRIZZO,Len(DATO$)
  2961.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2962.     DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2963.     Add INDIRIZZO,Len(DATO$)
  2964.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2965.     DATO$="Soldi:"+Chr$(10)
  2966.     Add INDIRIZZO,Len(DATO$)
  2967.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2968.     DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2969.     Add INDIRIZZO,Len(DATO$)
  2970.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2971.     DATO$="Descrizione:"+Chr$(10)
  2972.     Add INDIRIZZO,Len(DATO$)
  2973.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2974.     DATO$=DESCRIZIONES$(B,A)+"|"
  2975.     Add INDIRIZZO,Len(DATO$)
  2976.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2977.    Next B
  2978.   Next A
  2979.  End If 
  2980.  DATO$="Numero dei luoghi:"+Chr$(10)
  2981.  Add INDIRIZZO,Len(DATO$)
  2982.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2983.  DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2984.  Add INDIRIZZO,Len(DATO$)
  2985.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2986.  For A=0 To NUMEROL
  2987.   DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2988.   Add INDIRIZZO,Len(DATO$)
  2989.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2990.   DATO$="Nome:"+Chr$(10)
  2991.   Add INDIRIZZO,Len(DATO$)
  2992.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2993.   DATO$=NOMEL$(A)+Chr$(10)
  2994.   Add INDIRIZZO,Len(DATO$)
  2995.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2996.   DATO$="Luogo a Nord:"+Chr$(10)
  2997.   Add INDIRIZZO,Len(DATO$)
  2998.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2999.   DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  3000.   Add INDIRIZZO,Len(DATO$)
  3001.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3002.   DATO$="Luogo a NordEst:"+Chr$(10)
  3003.   Add INDIRIZZO,Len(DATO$)
  3004.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3005.   DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  3006.   Add INDIRIZZO,Len(DATO$)
  3007.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3008.   DATO$="Luogo a Est:"+Chr$(10)
  3009.   Add INDIRIZZO,Len(DATO$)
  3010.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3011.   DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  3012.   Add INDIRIZZO,Len(DATO$)
  3013.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3014.   DATO$="Luogo a SudEst:"+Chr$(10)
  3015.   Add INDIRIZZO,Len(DATO$)
  3016.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3017.   DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  3018.   Add INDIRIZZO,Len(DATO$)
  3019.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3020.   DATO$="Luogo a Sud:"+Chr$(10)
  3021.   Add INDIRIZZO,Len(DATO$)
  3022.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3023.   DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  3024.   Add INDIRIZZO,Len(DATO$)
  3025.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3026.   DATO$="Luogo a SudOvest:"+Chr$(10)
  3027.   Add INDIRIZZO,Len(DATO$)
  3028.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3029.   DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  3030.   Add INDIRIZZO,Len(DATO$)
  3031.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3032.   DATO$="Luogo a Ovest:"+Chr$(10)
  3033.   Add INDIRIZZO,Len(DATO$)
  3034.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3035.   DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  3036.   Add INDIRIZZO,Len(DATO$)
  3037.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3038.   DATO$="Luogo a NordOvest:"+Chr$(10)
  3039.   Add INDIRIZZO,Len(DATO$)
  3040.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3041.   DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  3042.   Add INDIRIZZO,Len(DATO$)
  3043.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3044.   DATO$="Luogo Sopra:"+Chr$(10)
  3045.   Add INDIRIZZO,Len(DATO$)
  3046.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3047.   DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  3048.   Add INDIRIZZO,Len(DATO$)
  3049.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3050.   DATO$="Luogo Sotto:"+Chr$(10)
  3051.   Add INDIRIZZO,Len(DATO$)
  3052.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3053.   DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  3054.   Add INDIRIZZO,Len(DATO$)
  3055.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3056.   DATO$="Soldi:"+Chr$(10)
  3057.   Add INDIRIZZO,Len(DATO$)
  3058.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3059.   DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  3060.   Add INDIRIZZO,Len(DATO$)
  3061.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3062.   DATO$="Regione:"+Chr$(10)
  3063.   Add INDIRIZZO,Len(DATO$)
  3064.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3065.   DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  3066.   Add INDIRIZZO,Len(DATO$)
  3067.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3068.   DATO$="Tipo di luogo:"+Chr$(10)
  3069.   Add INDIRIZZO,Len(DATO$)
  3070.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3071.   DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  3072.   Add INDIRIZZO,Len(DATO$)
  3073.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3074.   DATO$="Descrizione:"+Chr$(10)
  3075.   Add INDIRIZZO,Len(DATO$)
  3076.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3077.   DATO$=DESCRIZIONEL$(A)+"|"
  3078.   Add INDIRIZZO,Len(DATO$)
  3079.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3080.  Next A
  3081.  DATO$="Numero degli oggetti:"+Chr$(10)
  3082.  Add INDIRIZZO,Len(DATO$)
  3083.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3084.  DATO$=Str$(NUMEROO)-" "+Chr$(10)
  3085.  Add INDIRIZZO,Len(DATO$)
  3086.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3087.  For A=0 To NUMEROO
  3088.   DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  3089.   Add INDIRIZZO,Len(DATO$)
  3090.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3091.   DATO$="Categoria:"+Chr$(10)
  3092.   Add INDIRIZZO,Len(DATO$)
  3093.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3094.   DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  3095.   Add INDIRIZZO,Len(DATO$)
  3096.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3097.   DATO$="Posizione:"+Chr$(10)
  3098.   Add INDIRIZZO,Len(DATO$)
  3099.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3100.   DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  3101.   Add INDIRIZZO,Len(DATO$)
  3102.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3103.   DATO$="Tipo:"+Chr$(10)
  3104.   Add INDIRIZZO,Len(DATO$)
  3105.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3106.   DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  3107.   Add INDIRIZZO,Len(DATO$)
  3108.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3109.  Next A
  3110.  DATO$="Numero dei personaggi:"+Chr$(10)
  3111.  Add INDIRIZZO,Len(DATO$)
  3112.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3113.  DATO$=Str$(NUMEROP)-" "+Chr$(10)
  3114.  Add INDIRIZZO,Len(DATO$)
  3115.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3116.  For A=0 To NUMEROP
  3117.   DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  3118.   Add INDIRIZZO,Len(DATO$)
  3119.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3120.   DATO$="Nome:"+Chr$(10)
  3121.   Add INDIRIZZO,Len(DATO$)
  3122.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3123.   DATO$=NOMEP$(A)+Chr$(10)
  3124.   Add INDIRIZZO,Len(DATO$)
  3125.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3126.   DATO$="Posizione:"+Chr$(10)
  3127.   Add INDIRIZZO,Len(DATO$)
  3128.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3129.   DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  3130.   Add INDIRIZZO,Len(DATO$)
  3131.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3132.   DATO$="Costituzione:"+Chr$(10)
  3133.   Add INDIRIZZO,Len(DATO$)
  3134.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3135.   DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  3136.   Add INDIRIZZO,Len(DATO$)
  3137.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3138.   DATO$="Destrezza:"+Chr$(10)
  3139.   Add INDIRIZZO,Len(DATO$)
  3140.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3141.   DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  3142.   Add INDIRIZZO,Len(DATO$)
  3143.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3144.   DATO$="Forza:"+Chr$(10)
  3145.   Add INDIRIZZO,Len(DATO$)
  3146.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3147.   DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  3148.   Add INDIRIZZO,Len(DATO$)
  3149.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3150.   DATO$="Peso:"+Chr$(10)
  3151.   Add INDIRIZZO,Len(DATO$)
  3152.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3153.   DATO$=Str$(PESOP(A))-" "+Chr$(10)
  3154.   Add INDIRIZZO,Len(DATO$)
  3155.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3156.   DATO$="Peso netto:"+Chr$(10)
  3157.   Add INDIRIZZO,Len(DATO$)
  3158.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3159.   DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  3160.   Add INDIRIZZO,Len(DATO$)
  3161.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3162.   DATO$="Resistenza:"+Chr$(10)
  3163.   Add INDIRIZZO,Len(DATO$)
  3164.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3165.   DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  3166.   Add INDIRIZZO,Len(DATO$)
  3167.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3168.   DATO$="Soldi:"+Chr$(10)
  3169.   Add INDIRIZZO,Len(DATO$)
  3170.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3171.   DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  3172.   Add INDIRIZZO,Len(DATO$)
  3173.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3174.   DATO$="Tipo:"+Chr$(10)
  3175.   Add INDIRIZZO,Len(DATO$)
  3176.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3177.   DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  3178.   Add INDIRIZZO,Len(DATO$)
  3179.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3180.   DATO$="Descrizione:"+Chr$(10)
  3181.   Add INDIRIZZO,Len(DATO$)
  3182.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3183.   DATO$=DESCRIZIONEP$(A)+"|"
  3184.   Add INDIRIZZO,Len(DATO$)
  3185.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3186.   DATO$="Inizio sonno:"+Chr$(10)
  3187.   Add INDIRIZZO,Len(DATO$)
  3188.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3189.   DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  3190.   Add INDIRIZZO,Len(DATO$)
  3191.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3192.   DATO$="Durata sonno:"+Chr$(10)
  3193.   Add INDIRIZZO,Len(DATO$)
  3194.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3195.   DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  3196.   Add INDIRIZZO,Len(DATO$)
  3197.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3198.   DATO$="Direzione presa:"+Chr$(10)
  3199.   Add INDIRIZZO,Len(DATO$)
  3200.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3201.   DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  3202.   Add INDIRIZZO,Len(DATO$)
  3203.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3204.   DATO$="Luogo di destinazione:"+Chr$(10)
  3205.   Add INDIRIZZO,Len(DATO$)
  3206.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3207.   DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  3208.   Add INDIRIZZO,Len(DATO$)
  3209.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3210.   DATO$="Tempo di attraversamento:"+Chr$(10)
  3211.   Add INDIRIZZO,Len(DATO$)
  3212.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3213.   DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  3214.   Add INDIRIZZO,Len(DATO$)
  3215.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3216.   DATO$="Soldi ricevuti:"+Chr$(10)
  3217.   Add INDIRIZZO,Len(DATO$)
  3218.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3219.   DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  3220.   Add INDIRIZZO,Len(DATO$)
  3221.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3222.   For B=0 To 7
  3223.    DATO$="Azione"+Str$(B)+">"+Chr$(10)
  3224.    Add INDIRIZZO,Len(DATO$)
  3225.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3226.    DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  3227.    Add INDIRIZZO,Len(DATO$)
  3228.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3229.    DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  3230.    Add INDIRIZZO,Len(DATO$)
  3231.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3232.    DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  3233.    Add INDIRIZZO,Len(DATO$)
  3234.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3235.    DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  3236.    Add INDIRIZZO,Len(DATO$)
  3237.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3238.    DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  3239.    Add INDIRIZZO,Len(DATO$)
  3240.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3241.    DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  3242.    Add INDIRIZZO,Len(DATO$)
  3243.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3244.    DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  3245.    Add INDIRIZZO,Len(DATO$)
  3246.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3247.   Next B
  3248.   DATO$="Posizione azione:"+Chr$(10)
  3249.   Add INDIRIZZO,Len(DATO$)
  3250.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3251.   DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  3252.   Add INDIRIZZO,Len(DATO$)
  3253.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3254.  Next A
  3255.  DATO$="Numero delle regioni:"+Chr$(10)
  3256.  Add INDIRIZZO,Len(DATO$)
  3257.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3258.  DATO$=Str$(NUMEROR)-" "+Chr$(10)
  3259.  Add INDIRIZZO,Len(DATO$)
  3260.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3261.  For A=0 To NUMEROR
  3262.   DATO$="Regione"+Str$(A)+">"+Chr$(10)
  3263.   Add INDIRIZZO,Len(DATO$)
  3264.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3265.   DATO$="Nome:"+Chr$(10)
  3266.   Add INDIRIZZO,Len(DATO$)
  3267.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3268.   DATO$=NOMER$(A)+Chr$(10)
  3269.   Add INDIRIZZO,Len(DATO$)
  3270.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3271.  Next A
  3272.  DATO$="Giornata:"+Chr$(10)
  3273.  Add INDIRIZZO,Len(DATO$)
  3274.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3275.  DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  3276.  Add INDIRIZZO,Len(DATO$)
  3277.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3278.  DATO$="Tempo trascorso:"+Chr$(10)
  3279.  Add INDIRIZZO,Len(DATO$)
  3280.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3281.  DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  3282.  Add INDIRIZZO,Len(DATO$)
  3283.  Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3284.  MEMORIA=Max(Chip Free,Fast Free)
  3285.  If INDIRIZZO>MEMORIA
  3286.   Proc TIC["Mancano"+Str$(INDIRIZZO-1-MEMORIA)+" Byte",ULTIMALINEA]
  3287.   Proc _ASPETTA
  3288.   SENZAMEMORIA=True
  3289.  Else 
  3290.   LUNGHEZZABANCO=INDIRIZZO
  3291.   SENZAMEMORIA=False
  3292.  End If 
  3293. End If 
  3294. End Proc
  3295. Procedure D0RMI
  3296. COMPIUTAAZIONE=Rnd(120)+420
  3297. Bset 2,TIPOP(0)
  3298. Print At(0,ULTIMALINEA);"Hai deciso di dormire";
  3299. Proc _ASPETTA
  3300. End Proc
  3301. Procedure EDIFICI
  3302. If NUMEROE>-1
  3303.  For A=0 To NUMEROE
  3304.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3305.    EDIFICIVISIBILI=True
  3306.   End If 
  3307.  Next A
  3308. Else 
  3309.  EDIFICIVISIBILI=False
  3310. End If 
  3311. If EDIFICIVISIBILI=True
  3312.  Print "Edifici visibili>"
  3313.  Proc FONDOSCHERMOGIOCO
  3314.  For A=0 To NUMEROE
  3315.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3316.    Print NOMEE$(A)
  3317.   End If 
  3318.  Proc FONDOSCHERMOGIOCO
  3319.  Next A
  3320. Else 
  3321.  Print "Nessun edificio visibile"
  3322. End If 
  3323. End Proc
  3324. Procedure EDIFICIOESTANZA
  3325. E=POSIZIONEP(0)/$10000
  3326. Print "Edificio>";NOMEE$(E)
  3327. S=POSIZIONEP(0) mod $10000
  3328. Print "Stanza>";NOMES$(S,E)
  3329. Print "Direzioni visibili>";
  3330. For A=0 To 9
  3331.  DREZIONE=DREZIONES(A,S,E) mod $10000
  3332.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  3333. Next A
  3334. Print 
  3335. End Proc
  3336. Procedure ESAMINA
  3337. For A=1 To NUMEROP
  3338.  If PERSONAGGIOVISIBILEP(A)=True Then OGGETTIEPERSONAGGIDAESAMINARE=True
  3339.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3340.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3341.  End If 
  3342. Next A
  3343. If TEMP0DIATTRAVERSAMENTOP(0)=0
  3344.  For A=0 To NUMEROO
  3345.   If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  3346.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3347.   End If 
  3348.  Next A
  3349. End If 
  3350. For A=0 To NUMEROO
  3351.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False
  3352.   OGGETTIEPERSONAGGIDAESAMINARE=True
  3353.  End If 
  3354. Next A
  3355. If OGGETTIEPERSONAGGIDAESAMINARE=True
  3356.  Cls 
  3357.  Print "Personaggi ed oggetti esaminabili>"
  3358.  For A=1 To NUMEROP
  3359.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  3360.    If RESISTENZAP(A)=0
  3361.     Print "Il cadavere di ",NOMEP$(A)
  3362.    Else 
  3363.     Print NOMEP$(A)
  3364.    End If 
  3365.    Proc FONDOSCHERMOGIOCO
  3366.   End If 
  3367.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3368.   If RESISTENZAP(A)=0
  3369.     Print "Il cadavere di ";NOMEP$(A);" (che stai trasportando)"
  3370.    Else 
  3371.     Print NOMEP$(A);" (che stai trasportando)"
  3372.    End If 
  3373.    Proc FONDOSCHERMOGIOCO
  3374.   End If 
  3375.  Next A
  3376.  For A=0 To NUMEROO
  3377.   If POSIZIONEO(A)=POSIZIONEP(0)
  3378.    If Btst(3,TIPOO(A))=False
  3379.     Print Str$(A+1)-" ";">";
  3380.     If Btst(1,TIPOO(A))=True
  3381.      Print NOMESRO$(CATEGORIAO(A))
  3382.     Else 
  3383.      Print NOMESCO$(CATEGORIAO(A))
  3384.     End If 
  3385.     Proc FONDOSCHERMOGIOCO
  3386.    End If 
  3387.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3388.    Print Str$(A+1)-" ";">";
  3389.    If Btst(1,TIPOO(A))=True
  3390.     Print NOMESRO$(CATEGORIAO(A));
  3391.    Else 
  3392.     Print NOMESCO$(CATEGORIAO(A));
  3393.    End If 
  3394.    Print " (che stai trasportando)"
  3395.    Proc FONDOSCHERMOGIOCO
  3396.   End If 
  3397.  Next A
  3398.  Print At(0,ULTIMALINEA-1);"Chi o che cosa vuoi esaminare ?>" : Locate 0,ULTIMALINEA
  3399.  Input "Numero=Oggetto/Nome=Personaggio>";NUMEROOGGETTOONOMEPERSONAGGIO$;
  3400.  Curs Off 
  3401.  If NUMEROOGGETTOONOMEPERSONAGGIO$<>""
  3402.   If Val(NUMEROOGGETTOONOMEPERSONAGGIO$)=0
  3403.    If NUMEROOGGETTOONOMEPERSONAGGIO$="0"
  3404.     Pop Proc
  3405.    End If 
  3406.    For A=1 To NUMEROP
  3407.     If Lower$(NUMEROOGGETTOONOMEPERSONAGGIO$)=Lower$(NOMEP$(A))
  3408.      Exit 
  3409.     End If 
  3410.    Next A
  3411.    If A=NUMEROP+1
  3412.     Print At(0,ULTIMALINEA);"Non c'� nessun ";NUMEROOGGETTOONOMEPERSONAGGIO$;" da esaminare    ";
  3413.     If _MUSICA=False
  3414.      Bell 1
  3415.     End If 
  3416.     Proc _ASPETTA
  3417.    Else 
  3418.     COMPIUTAAZIONE=1
  3419.     Cls 
  3420.     If RESISTENZAP(A)=0
  3421.      Print NOMEP$(A);" era un";
  3422.      If Btst(1,TIPOP(A))=True
  3423.       Print "a femmina"
  3424.      Else 
  3425.       Print " maschio"
  3426.      End If 
  3427.     Else 
  3428.      Print NOMEP$(A);" ï¿½ un";
  3429.      If Btst(1,TIPOP(A))=True
  3430.       Print "a femmina"
  3431.      Else 
  3432.       Print " maschio"
  3433.      End If 
  3434.      If Btst(2,TIPOP(A))=True
  3435.      Print NOMEP$(A);" sta dormendo"
  3436.      End If 
  3437.      For B=0 To NUMEROO
  3438.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3439.        OGGETTIDAMOSTRARE=True
  3440.       End If 
  3441.      Next B
  3442.      If SOLDIP(A)>0
  3443.       OGGETTIDAMOSTRARE=True
  3444.      End If 
  3445.      If OGGETTIDAMOSTRARE=True
  3446.       For B=0 To NUMEROCO
  3447.        OGGETTIDIA(B)=0
  3448.        RESTIDIA(B)=0
  3449.       Next B
  3450.       For B=0 To NUMEROO
  3451.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3452.         If Btst(1,TIPOO(B))=True
  3453.          Inc RESTIDIA(CATEGORIAO(B))
  3454.         Else 
  3455.          Inc OGGETTIDIA(CATEGORIAO(B))
  3456.         End If 
  3457.        End If 
  3458.       Next B
  3459.       Print "Inventario oggetti di ";NOMEP$(A);">"
  3460.       For B=0 To NUMEROCO
  3461.        If OGGETTIDIA(B)>0
  3462.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3463.         If OGGETTIDIA(B)=1
  3464.          Print NOMESCO$(B)
  3465.         Else 
  3466.          Print NOMEPCO$(B)
  3467.         End If 
  3468.        End If 
  3469.        If RESTIDIA(B)>0
  3470.         Print Str$(RESTIDIA(B))-" ";" ";
  3471.         If RESTIDIA(B)=1
  3472.          Print NOMESRO$(B)
  3473.         Else 
  3474.          Print NOMEPRO$(B)
  3475.         End If 
  3476.        End If 
  3477.       Next B
  3478.       If SOLDIP(B)>0
  3479.        Print Str$(SOLDIP(B))-" ";" ";
  3480.        If SOLDIP(B)=1
  3481.         Print "soldo"
  3482.        Else 
  3483.         Print "soldi"
  3484.        End If 
  3485.        Proc FONDOSCHERMOGIOCO
  3486.       End If 
  3487.       For B=0 To NUMEROO
  3488.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True
  3489.         If Btst(2,TIPOCO(CATEGORIAO(B)))=True and Btst(2,TIPOO(B))=True
  3490.          Print NOMEP$(A);" indossa 1 ";NOMESCO$(CATEGORIAO(B))
  3491.          Exit 
  3492.         End If 
  3493.        End If 
  3494.       Next B
  3495.      Else 
  3496.       Print NOMEP$(A);" non ha nessun oggetto"
  3497.      End If 
  3498.     End If 
  3499.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3500.    End If 
  3501.   Else 
  3502.    OGGETTODAESAMINARE=Val(NUMEROOGGETTOONOMEPERSONAGGIO$)
  3503.    For A=0 To NUMEROO
  3504.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3505.      Exit 
  3506.     End If 
  3507.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3508.      Exit 
  3509.     End If 
  3510.    Next A
  3511.    If A=NUMEROO+1
  3512.     Print At(0,ULTIMALINEA);"Non c'� nessun oggetto col numero";OGGETTODAESAMINARE;
  3513.     If _MUSICA=False
  3514.      Bell 1
  3515.     End If 
  3516.     Proc _ASPETTA
  3517.    Else 
  3518.     COMPIUTAAZIONE=1
  3519.     Cls 
  3520.     Print "Oggetto numero";OGGETTODAESAMINARE;">";
  3521.     If Btst(1,TIPOO(A))=True
  3522.      Print NOMESRO$(CATEGORIAO(A))
  3523.     Else 
  3524.      Print NOMESCO$(CATEGORIAO(A))
  3525.     End If 
  3526.     If Btst(0,TIPOCO(CATEGORIAO(A)))=True
  3527.      Print "� commestibile"
  3528.     End If 
  3529.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  3530.      Print "� un contenitore"
  3531.     End If 
  3532.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  3533.      Print "� difensivo"
  3534.     End If 
  3535.     If Btst(3,TIPOCO(CATEGORIAO(A)))=True
  3536.      Print "� leggibile"
  3537.     End If 
  3538.     If Btst(4,TIPOCO(CATEGORIAO(A)))=True
  3539.      Print "� liquido"
  3540.     Else 
  3541.      Print "� solido"
  3542.     End If 
  3543.     If Btst(5,TIPOCO(CATEGORIAO(A)))=True
  3544.      Print "� magico"
  3545.     End If 
  3546.     If Btst(6,TIPOCO(CATEGORIAO(A)))=True
  3547.      Print "� offensivo"
  3548.     End If 
  3549.     If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  3550.      Print "� residente"
  3551.     End If 
  3552.     If Btst(8,TIPOCO(CATEGORIAO(A)))=True
  3553.      Print "� trasferibile"
  3554.     End If 
  3555.     If Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3556.      Print "� trasparente"
  3557.     End If 
  3558.     If Btst(10,TIPOCO(CATEGORIAO(A)))=True
  3559.      Print "� vincolato"
  3560.     End If 
  3561.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True and Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3562.      For B=0 To NUMEROCO
  3563.       OGGETTIDIA(B)=0
  3564.       RESTIDIA(B)=0
  3565.      Next B
  3566.      For B=0 To NUMEROO
  3567.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and Btst(3,TIPOO(B))=False
  3568.        OGGETTICONTENUTI=True
  3569.        If Btst(1,TIPOO(B))=True
  3570.         Inc RESTIDIA(CATEGORIAO(A))
  3571.        Else 
  3572.         Inc OGGETTIDIA(CATEGORIAO(A))
  3573.        End If 
  3574.       End If 
  3575.      Next B
  3576.      For B=1 To NUMEROP
  3577.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3578.        PERSONAGGICONTENUTI=True
  3579.       End If 
  3580.      Next B
  3581.      If OGGETTICONTENUTI=True
  3582.       Print "oggetti contenuti>"
  3583.       Proc FONDOSCHERMOGIOCO
  3584.       For B=0 To NUMEROCO
  3585.        If OGGETTIDIA(B)>0
  3586.         Print Str$(OGGETTIDIA(B))-" ";" ";
  3587.         If OGGETTIDIA(B)=1
  3588.          Print NOMESCO$(B)
  3589.         Else 
  3590.          Print NOMEPCO$(B)
  3591.         End If 
  3592.         Proc FONDOSCHERMOGIOCO
  3593.        End If 
  3594.        If RESTIDIA(B)>0
  3595.         Print Str$(RESTIDIA(B))-" ";" ";
  3596.         If RESTIDIA(B)=1
  3597.          Print NOMESRO$(B)
  3598.         Else 
  3599.          Print NOMEPRO$(B)
  3600.         End If 
  3601.         Proc FONDOSCHERMOGIOCO
  3602.        End If 
  3603.       Next B
  3604.      Else 
  3605.       Print "non contiene nessun oggetto"
  3606.      End If 
  3607.      If PERSONAGGICONTENUTI=True
  3608.       Print "personaggi contenuti>"
  3609.       Proc FONDOSCHERMOGIOCO
  3610.       For B=1 To NUMEROP
  3611.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3612.         Print NOMEP$(B)
  3613.         Proc FONDOSCHERMOGIOCO
  3614.        End If 
  3615.       Next B
  3616.      Else 
  3617.       Print "non contiene nessun personaggio"
  3618.      End If 
  3619.     End If 
  3620.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3621.    End If 
  3622.   End If 
  3623.  End If 
  3624. Else 
  3625.  Print At(0,ULTIMALINEA);"Non ci sono oggetti e personaggi da esaminare";
  3626.  If _MUSICA=False
  3627.   Bell 1
  3628.  End If 
  3629. Proc _ASPETTA
  3630. End If 
  3631. End Proc
  3632. Procedure FAIDORMIREGLIALTRIPERSONAGGI[P]
  3633. M1NUTI=(TEMP0TRASCORSO+360) mod 1440-COMPIUTAAZIONE
  3634. If INIZIOSONNOP(P)=M1NUTI
  3635.  If PERSONAGGIOVISIBILEP(P)=True
  3636.   If Btst(2,TIPOP(P))=False
  3637.    Print NOMEP$(P);" si ï¿½ addormentat";
  3638.    If Btst(1,TIPOP(P))=True
  3639.     Print "a"
  3640.    Else 
  3641.     Print "o"
  3642.    End If 
  3643.   End If 
  3644.  End If 
  3645.  SONNOP(P)=Rnd(120)+420
  3646.  Bset 2,TIPOP(P)
  3647. End If 
  3648. End Proc
  3649. Procedure FASEDELGIORNO
  3650. Print "Fase del giorno>";
  3651. M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  3652. If M1NUTI<360
  3653.  Print FASEG$(6)
  3654. Else If M1NUTI>359 and M1NUTI<420
  3655.  Print FASEG$(0)
  3656. Else If M1NUTI>419 and M1NUTI<540
  3657.  Print FASEG$(1)
  3658. Else If M1NUTI>539 and M1NUTI<780
  3659.  Print FASEG$(2)
  3660. Else If M1NUTI>779 and M1NUTI<1080
  3661.  Print FASEG$(3)
  3662. Else If M1NUTI>1079 and M1NUTI<1140
  3663.  Print FASEG$(4)
  3664. Else If M1NUTI>1139 and M1NUTI<1260
  3665.  Print FASEG$(5)
  3666. Else 
  3667.  Print FASEG$(6)
  3668. End If 
  3669. End Proc
  3670. Procedure FONDOSCHERMOEDITOR
  3671. If MESSAGGIO1$<>""
  3672.  If Y Curs=ULTIMALINEA-1
  3673.   Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  3674.   Proc TIC["premi un tasto",ULTIMALINEA]
  3675.   Wait Key 
  3676.   Cls 
  3677.  End If 
  3678. Else 
  3679.  If Y Curs=ULTIMALINEA
  3680.   Proc TIC["premi un tasto",ULTIMALINEA]
  3681.   Wait Key 
  3682.   Cls 
  3683.  End If 
  3684. End If 
  3685. End Proc
  3686. Procedure FONDOSCHERMOGIOCO
  3687. If Y Curs=ULTIMALINEA
  3688.  Proc TIC["premi un tasto",ULTIMALINEA]
  3689.  Wait Key 
  3690.  Cls 
  3691. End If 
  3692. End Proc
  3693. Procedure GIOCA
  3694. Fade 5,$66
  3695. Proc MOSTRAMESSAGGIO["Prologo",PROLOGO$]
  3696. Repeat 
  3697.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3698.  If FINEA(7,0)=True
  3699.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3700.   Exit 
  3701.  End If 
  3702.  If COMPIUTAAZIONE>0
  3703.   Add TEMP0TRASCORSO,COMPIUTAAZIONE
  3704.  End If 
  3705.  PERSONAGGIO0SITROVADENTROUNEDIFICIO=POSIZIONEP(0)/$10000
  3706.  If ANEMICI=True and PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3707.   AZIONI=COMPIUTAAZIONE
  3708.   While AZIONI>0
  3709.    NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  3710.    NEMICI=Max(NEMICI,0)
  3711.    If NEMICI=0
  3712.     If Btst(2,TIPOP(0))=True
  3713.      Bclr 2,TIPOP(0) : Add COMPIUTAAZIONE,-AZIONI : AZIONI=1 : INEMICITISVEGLIANO=True
  3714.      Proc NEMICI[0]
  3715.     Else 
  3716.      Proc NEMICI[0]
  3717.     End If 
  3718.    End If 
  3719.    Dec AZIONI
  3720.   Wend 
  3721.  End If 
  3722.  Cls 
  3723.  If RESISTENZAP(0)=0 Then Proc MORTE[0] : Exit 
  3724.  Proc TIC["Premi * per le informazioni",0] : Print 
  3725.  Print "Nome del personaggio>";NOMEP$(0)
  3726.  Proc TEMP0
  3727.  If PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3728.   Proc FASEDELGIORNO
  3729.   Proc CONDIZIONEDELGIORNO
  3730.   If TEMP0DIATTRAVERSAMENTOP(0)=0
  3731.    Proc LUOGO
  3732.    Proc TIPODILUOGO
  3733.    Proc EDIFICI
  3734.    Proc PERSONAGGI
  3735.    Proc OGGETTI[True]
  3736.    Print String$("*",80);
  3737.    Proc AZIONIALTRIPERSONAGGI
  3738.    Proc OGGETTI[False]
  3739.    Bclr 2,TIPOP(0)
  3740.    Memorize X : Memorize Y 
  3741.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3742.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3743.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3744.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3745.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3746.    If SCELTA$="d" : Proc DAI : End If 
  3747.    If SCELTA$="e" : Proc ESAMINA : End If 
  3748.    If SCELTA$="g" : Proc GUARDA : End If 
  3749.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3750.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3751.    If SCELTA$="l" : Proc LASCIA : End If 
  3752.    If SCELTA$="m" : Proc MUOVITI : End If 
  3753.    If SCELTA$="p" : Proc PRENDI : End If 
  3754.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3755.    If SCELTA$="u" : Proc USA : End If 
  3756.    If SCELTA$="z" : Proc D0RMI : End If 
  3757.   Else 
  3758.    Print NOMEP$(0);" sta andando ";
  3759.    If DREZIONEPRESAP(0)>7
  3760.     Print Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3761.    Else 
  3762.     Print "a ";Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3763.    End If 
  3764.    Print " da ";NOMEL$(POSIZIONEP(0))
  3765.    Proc TIPODILUOGO
  3766.    Proc TIPODILUOGODIDESTINAZIONE
  3767.    If TEMP0DIATTRAVERSAMENTOP(0)=1
  3768.     Print "Gli resta 1 minuto";
  3769.    Else 
  3770.     Print "Gli restano";TEMP0DIATTRAVERSAMENTOP(0);" minuti";
  3771.    End If 
  3772.    Print " di cammino..."
  3773.    Proc PERSONAGGI
  3774.    Print String$("*",80);
  3775.    Proc AZIONIALTRIPERSONAGGI
  3776.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3777.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3778.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3779.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3780.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3781.    If SCELTA$="d" : Proc DAI : End If 
  3782.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3783.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3784.    If SCELTA$="l" : Proc LASCIA : End If 
  3785.    If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3786.    If SCELTA$="p" : Proc PRENDI : End If 
  3787.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3788.    If SCELTA$="z" : Proc D0RMI : End If 
  3789.   End If 
  3790.  Else 
  3791.   Proc EDIFICIOESTANZA
  3792.   Proc PERSONAGGI
  3793.   Print String$("*",80);
  3794.   Proc AZIONIALTRIPERSONAGGI
  3795.   Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3796.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3797.   If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3798.   If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3799.   If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3800.   If SCELTA$="d" : Proc DAI : End If 
  3801.   If SCELTA$="i" : Proc INVENTARIO : End If 
  3802.   If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3803.   If SCELTA$="l" : Proc LASCIA : End If 
  3804.   If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3805.   If SCELTA$="p" : Proc PRENDI : End If 
  3806.   If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3807.   If SCELTA$="z" : Proc D0RMI : End If 
  3808.  End If 
  3809.  Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3810.  If FINEA(7,0)=True
  3811.   Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3812.   Exit 
  3813.  End If 
  3814. Until SCELTA$="x"
  3815. Fade 5,$60
  3816. End Proc
  3817. Procedure GUARDA
  3818. For A=0 To NUMEROCO
  3819.  If OGGETTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,OGGETTINELLUOGO(A)
  3820.  If RESTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,RESTINELLUOGO(A)
  3821.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,OGGETTIDELPERSONAGGIO0(A)
  3822.  If RESTIDELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,RESTIDELPERSONAGGIO0(A)
  3823. Next A
  3824. If NUMEROE>-1
  3825.  For A=0 To NUMEROE
  3826.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3827.    Inc EDIFICIVISIBILI
  3828.   End If 
  3829.  Next A
  3830. Else 
  3831.  EDIFICIVISIBILI=0
  3832. End If 
  3833. PERSONAGGIVISIBILI=1
  3834. For A=1 To NUMEROP
  3835.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  3836. Next A
  3837. E=POSIZIONEP(0)/$10000
  3838. If E>0
  3839.  If OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3840.   Print At(0,ULTIMALINEA);"Vuoi guardare un oggetto, un personaggio o la stanza (o/p/s) ?>";
  3841.   OGGETTOPERSONAGGIOOSTANZA$=Input$(1)
  3842.   OGGETTOPERSONAGGIOOSTANZA$=Lower$(OGGETTOPERSONAGGIOOSTANZA$)
  3843.   If OGGETTOPERSONAGGIOOSTANZA$="o"
  3844.    Proc GUARDAUNOGGETTO
  3845.   Else If OGGETTOPERSONAGGIOOSTANZA$="p"
  3846.    Proc GUARDAUNPERSONAGGIO
  3847.   Else If OGGETTOPERSONAGGIOOSTANZA$="s"
  3848.    Proc GUARDALASTANZA
  3849.   End If 
  3850.  Else If OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3851.   Print At(0,ULTIMALINEA);"Vuoi guardare un personaggio o la stanza (p/s) ?>";
  3852.   PERSONAGGIOOSTANZA$=Input$(1)
  3853.   PERSONAGGIOOSTANZA$=Lower$(PERSONAGGIOOSTANZA$)
  3854.   If PERSONAGGIOOSTANZA$="p"
  3855.    Proc GUARDAUNPERSONAGGIO
  3856.   Else If PERSONAGGIOOSTANZA$="s"
  3857.    Proc GUARDALASTANZA
  3858.   End If 
  3859.  End If 
  3860. Else 
  3861.  If EDIFICIVISIBILI>0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3862.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo, un oggetto od un personaggio (e/l/o/p) ?>";
  3863.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3864.   EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOGGETTOOPERSONAGGIO$)
  3865.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3866.    Proc GUARDALEDIFICIO
  3867.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="l"
  3868.    Proc GUARDAILLUOGO
  3869.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="o"
  3870.    Proc GUARDAUNOGGETTO
  3871.   Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="p"
  3872.    Proc GUARDAUNPERSONAGGIO
  3873.   End If 
  3874.  Else If EDIFICIVISIBILI>0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3875.   Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo od un personaggio (e/l/p) ?>";
  3876.   EDIFICIOLUOGOOPERSONAGGIO$=Input$(1)
  3877.   EDIFICIOLUOGOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOOPERSONAGGIO$)
  3878.   If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3879.    Proc GUARDALEDIFICIO
  3880.   Else If EDIFICIOLUOGOOOPERSONAGGIO$="l"
  3881.    Proc GUARDAILLUOGO
  3882.   Else If EDIFICIOLUOGOOPERSONAGGIO$="p"
  3883.    Proc GUARDAUNPERSONAGGIO
  3884.   End If 
  3885.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3886.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo, un oggetto od un personaggio (l/o/p) ?>";
  3887.   LUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3888.   LUOGOOGGETTOOPERSONAGGIO$=Lower$(LUOGOOGGETTOOPERSONAGGIO$)
  3889.   If LUOGOOGGETTOOPERSONAGGIO$="l"
  3890.    Proc GUARDAILLUOGO
  3891.   Else If LUOGOOGGETTOOPERSONAGGIO$="o"
  3892.    Proc GUARDAUNOGGETTO
  3893.   Else If LUOGOOGGETTOOPERSONAGGIO$="p"
  3894.    Proc GUARDAUNPERSONAGGIO
  3895.   End If 
  3896.  Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3897.   Print At(0,ULTIMALINEA);"Vuoi guardare il luogo od un personaggio (l/p) ?>";
  3898.   LUOGOOPERSONAGGIO$=Input$(1)
  3899.   LUOGOOPERSONAGGIO$=Lower$(LUOGOOPERSONAGGIO$)
  3900.   If LUOGOOPERSONAGGIO$="l"
  3901.    Proc GUARDAILLUOGO
  3902.   Else If LUOGOOPERSONAGGIO$="p"
  3903.    Proc GUARDAUNPERSONAGGIO
  3904.   End If 
  3905.  End If 
  3906. End If 
  3907. End Proc
  3908. Procedure GUARDAILLUOGO
  3909. LUOGO$=NOMEL$(POSIZIONEP(0))
  3910. DESCRIZIONE$=DESCRIZIONEL$(POSIZIONEP(0))
  3911. COMPIUTAAZIONE=1
  3912. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il luogo ";LUOGO$;
  3913. Proc _ASPETTA
  3914. Proc MOSTRAMESSAGGIO["Descrizione del luogo "+LUOGO$,DESCRIZIONE$]
  3915. End Proc
  3916. Procedure GUARDALASTANZA
  3917. E=POSIZIONEP(0)/$10000 : S=POSIZIONEP(0) mod $10000
  3918. STANZA$=NOMES$(S,E)
  3919. DESCRIZIONE$=DESCRIZIONES$(S,E)
  3920. COMPIUTAAZIONE=1
  3921. Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare la stanza ";STANZA$;
  3922. Proc _ASPETTA
  3923. Proc MOSTRAMESSAGGIO["Descrizione della stanza "+STANZA$,DESCRIZIONE$]
  3924. End Proc
  3925. Procedure GUARDALEDIFICIO
  3926. For A=0 To NUMEROE
  3927.  If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3928.   Inc EDIFICIVISIBILI : E=A
  3929.  End If 
  3930. Next A
  3931. If EDIFICIVISIBILI>1
  3932.  Locate 0,ULTIMALINEA : Input "Quale edificio vuoi guardare ?>";EDIFICIO$;
  3933.  Curs Off 
  3934.  If EDIFICIO$<>""
  3935.   For A=1 To NUMEROE
  3936.    If Lower$(EDIFICIO$)=Lower$(NOMEE$(A)) and POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3937.     EDIFICIO$=NOMEE$(A)
  3938.     DESCRIZIONE$=DESCRIZIONEE$(A)
  3939.     COMPIUTAAZIONE=1
  3940.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$;
  3941.     Proc _ASPETTA
  3942.     Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3943.     Exit 
  3944.    End If 
  3945.   Next A
  3946.   If A=NUMEROP+1
  3947.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";EDIFICIO$;
  3948.    If _MUSICA=False
  3949.     Bell 1
  3950.    End If 
  3951.    Proc _ASPETTA
  3952.   End If 
  3953.  End If 
  3954. Else 
  3955.  EDIFICIO$=NOMEE$(E)
  3956.  DESCRIZIONE$=DESCRIZIONEE$(E)
  3957.  COMPIUTAAZIONE=1
  3958.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$
  3959.  Proc _ASPETTA
  3960.  Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3961. End If 
  3962. End Proc
  3963. Procedure GUARDAUNOGGETTO
  3964. For A=0 To NUMEROO
  3965.  If POSIZIONEO(A)=POSIZIONEP(0)
  3966.   Inc OGGETTIVISIBILI : O=A
  3967.  Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3968.   Inc OGGETTIVISIBILI : O=A
  3969.  End If 
  3970. Next A
  3971. If OGGETTIVISIBILI>1
  3972.  Cls 
  3973.  For A=0 To NUMEROO
  3974.   If POSIZIONEO(A)=POSIZIONEP(0)
  3975.    If Btst(3,TIPOO(A))=False
  3976.     Print Str$(A+1)-" ";">";
  3977.     If Btst(1,TIPOO(A))=True
  3978.      Print NOMESRO$(CATEGORIAO(A))
  3979.     Else 
  3980.      Print NOMESCO$(CATEGORIAO(A))
  3981.     End If 
  3982.     Proc FONDOSCHERMOGIOCO
  3983.    End If 
  3984.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3985.    Print Str$(A+1)-" ";">";
  3986.    If Btst(1,TIPOO(A))=True
  3987.     Print NOMESRO$(CATEGORIAO(A));
  3988.    Else 
  3989.     Print NOMESCO$(CATEGORIAO(A));
  3990.    End If 
  3991.    Print " (che stai trasportando)"
  3992.    Proc FONDOSCHERMOGIOCO
  3993.   End If 
  3994.  Next A
  3995.  Locate 0,ULTIMALINEA
  3996.  Input "Digita il numero dell'oggetto che vuoi guardare>";NUMEROOGGETTO$;
  3997.  Curs Off 
  3998.  If NUMEROOGGETTO$<>""
  3999.   NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  4000.   For A=0 To NUMEROO
  4001.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4002.     Exit 
  4003.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4004.     Exit 
  4005.    End If 
  4006.   Next A
  4007.   If A=NUMEROO+1
  4008.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun oggetto col numero";NUMEROOGGETTO;
  4009.    If _MUSICA=False
  4010.     Bell 1
  4011.    End If 
  4012.    Proc _ASPETTA
  4013.   Else 
  4014.    OGGETTO$=NOMESCO$(CATEGORIAO(A))
  4015.    DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(A))
  4016.    COMPIUTAAZIONE=1
  4017.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4018.    Proc _ASPETTA
  4019.    Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4020.   End If 
  4021.  End If 
  4022. Else 
  4023.  OGGETTO$=NOMESCO$(CATEGORIAO(O))
  4024.  DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(O))
  4025.  COMPIUTAAZIONE=1
  4026.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4027.  Proc _ASPETTA
  4028.  Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4029. End If 
  4030. End Proc
  4031. Procedure GUARDAUNPERSONAGGIO
  4032. PERSONAGGIOVISIBILE=1
  4033. For A=0 To NUMEROP
  4034.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  4035. Next A
  4036. If PERSONAGGIVISIBILI>1
  4037.  Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
  4038.  Curs Off 
  4039.  If PERSONAGGIO$<>""
  4040.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  4041.   If PERSONAGGIO$="me"
  4042.    PERSONAGGIO$=NOMEP$(0)
  4043.    DESCRIZIONE$=DESCRIZIONEP$(0)
  4044.    COMPIUTAAZIONE=1
  4045.    Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4046.    Proc _ASPETTA
  4047.    Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4048.   Else 
  4049.    For A=1 To NUMEROP
  4050.     If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4051.      PERSONAGGIO$=NOMEP$(A)
  4052.      DESCRIZIONE$=DESCRIZIONEP$(A)
  4053.      COMPIUTAAZIONE=1
  4054.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
  4055.      Proc _ASPETTA
  4056.      Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4057.      Exit 
  4058.     End If 
  4059.    Next A
  4060.    If A=NUMEROP+1
  4061.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4062.     If _MUSICA=False
  4063.      Bell 1
  4064.     End If 
  4065.     Proc _ASPETTA
  4066.    End If 
  4067.   End If 
  4068.  End If 
  4069. Else 
  4070.  PERSONAGGIO$=NOMEP$(0)
  4071.  DESCRIZIONE$=DESCRIZIONEP$(0)
  4072.  COMPIUTAAZIONE=1
  4073.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4074.  Proc _ASPETTA
  4075.  Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4076. End If 
  4077. End Proc
  4078. Procedure INFORMAZIONI
  4079. Cls 
  4080. TIC["Comandi utilizzabili:",0] : Print 
  4081. If TEMP0DIATTRAVERSAMENTOP(0)=0
  4082.  Print "Premi A aspettare cinque minuti di gioco"
  4083.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4084.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4085.  Print "Premi E per esaminare un oggetto od un personaggio"
  4086.  Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
  4087.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4088.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4089.  Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
  4090.  Print "Premi M per muoverti"
  4091.  Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
  4092.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4093.  Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
  4094.  Print "Premi X per smettere di giocare"
  4095.  Print "Premi Z per dormire"
  4096. Else 
  4097.  Print "Premi A per aspettare cinque minuti di gioco"
  4098.  Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4099.  Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4100.  Print "Premi I per vedere l'inventario del tuo personaggio"
  4101.  Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4102.  Print "Premi M per muoverti"
  4103.  Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4104.  Print "Premi X per smettere di giocare"
  4105.  Print "Premi Z per dormire"
  4106. End If 
  4107. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4108. End Proc
  4109. Procedure INIZIALIZZALEVARIABILI
  4110. MESSAGGIO1$=""
  4111. For A=0 To NUMMASCO
  4112.  NOMESCO$(A)="Oggetto"+Str$(A)
  4113.  NOMEPCO$(A)="Oggetti"+Str$(A)
  4114.  NOMESRO$(A)="Resto oggetto"+Str$(A)
  4115.  NOMEPRO$(A)="Resti oggetti"+Str$(A)
  4116.  PESOCO(A)=5
  4117.  PESORESTOCO(A)=1
  4118.  DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
  4119. Next A
  4120. For A=0 To NUMMASE
  4121.  NOMEE$(A)="Edificio"+Str$(A)
  4122.  DESCRIZIONEE$(A)="Descrizione dell'edificio"+Str$(A)
  4123.  For B=0 To NUMMASS
  4124.   NOMES$(B,A)="Stanza"+Str$(B)
  4125.   DESCRIZIONES$(B,A)="Descrizione della stanza"+Str$(A)
  4126.  Next B
  4127. Next A
  4128. For A=0 To NUMMASL
  4129.  NOMEL$(A)="Luogo"+Str$(A)
  4130.  DESCRIZIONEL$(A)="Descrizione del luogo"+Str$(A)
  4131. Next A
  4132. For A=0 To NUMMASP
  4133.  NOMEP$(A)="Personaggio"+Str$(A)
  4134.  C0STITUZIONEP(A)=1
  4135.  DESTREZZAP(A)=1
  4136.  F0RZAP(A)=1
  4137.  PESOP(A)=1
  4138.  RESISTENZAP(A)=1
  4139.  DESCRIZIONEP$(A)="Descrizione del personaggio"+Str$(A)
  4140. Next A
  4141. For A=0 To NUMMASR
  4142.  NOMER$(A)="Regione"+Str$(A)
  4143. Next A
  4144. End Proc
  4145. Procedure INSERISCIPARAMETRIAZIONE[AZIONE,A,P]
  4146. Cls 
  4147. Print "Nome del personaggio";P;">";NOMEP$(P)
  4148. Locate 0,ULTIMALINEA
  4149. If AZIONE=1
  4150.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4151.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4152. Else If AZIONE=2
  4153.  Input "Quanti oggetti vuole dare ai personaggi?>";PARA;
  4154.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4155.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4156.  PARABAZIONEP(A,P)=Param
  4157. Else If AZIONE=3
  4158.  Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4159.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4160.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4161.  PARABAZIONEP(AZIONE,P)=Param
  4162. Else If AZIONE=4
  4163.  Input "Quanti personaggi vuole dare ai personaggi (1-65535) ?>";PARA;
  4164.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4165. Else If AZIONE=5
  4166.  Repeat 
  4167.   Input "Quale personaggio vuole dare ai personaggi (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4168.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4169.   Locate 0,ULTIMALINEA
  4170.  Until PARA<>P
  4171. Else If AZIONE=6
  4172.  Repeat 
  4173.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4174.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4175.   Locate 0,ULTIMALINEA : Cline 
  4176.  Until PARA<>P
  4177.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4178.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4179. Else If AZIONE=7
  4180.  Repeat 
  4181.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4182.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4183.   Locate 0,ULTIMALINEA
  4184.  Until PARA<>P
  4185.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4186.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4187.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4188.  PARACAZIONEP(A,P)=Param
  4189. Else If AZIONE=8
  4190.  Repeat 
  4191.   Locate 0,ULTIMALINEA
  4192.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4193.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4194.   Locate 0,ULTIMALINEA : Cline 
  4195.  Until PARA<>P
  4196.  Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4197.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4198.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4199.  PARACAZIONEP(A,P)=Param
  4200. Else If AZIONE=9
  4201.  Repeat 
  4202.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4203.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4204.   Locate 0,ULTIMALINEA : Cline 
  4205.  Until PARA<>P
  4206.  Input "Quanti personaggi vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4207.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4208. Else If AZIONE=10
  4209.  Repeat 
  4210.   Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4211.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=PARA
  4212.   Locate 0,ULTIMALINEA : Cline 
  4213.  Until PARA<>P
  4214.  Repeat 
  4215.   Input "Quale personaggio vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4216.   Proc LIMITI[PARB,0,NUMEROP] : PARABAZIONEP(A,P)=Param
  4217.   Locate 0,ULTIMALINEA : Cline 
  4218.  Until PARB<>PARA
  4219. Else If AZIONE=11
  4220.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4221.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4222. Else If AZIONE=12
  4223.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4224.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4225.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4226.  PARABAZIONEP(A,P)=Param
  4227. Else If AZIONE=13
  4228.  Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4229.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4230.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4231.  PARABAZIONEP(A,P)=Param
  4232. Else If AZIONE=14
  4233.  Input "Quanti personaggi vuole lasciare (1-65535) ?>";PARA;
  4234.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4235. Else If AZIONE=15
  4236.  Repeat 
  4237.   Input "Quale personaggio vuole lasciare (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4238.   Proc LIMITI[PARA,1,65535] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4239.   Locate 0,ULTIMALINEA : Cline 
  4240.  Until PARA<>P
  4241. Else If AZIONE=17
  4242.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4243.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4244. Else If AZIONE=18
  4245.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4246.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4247.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4248.  PARABAZIONEP(A,P)=Param
  4249. Else If AZIONE=19
  4250.  Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4251.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4252.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4253.  PARABAZIONEP(A,P)=Param
  4254. Else If AZIONE=20
  4255.  Input "Quanti personaggi vuole prendere (1-65535) ?>";PARA;
  4256.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4257. Else If AZIONE=21
  4258.  Repeat 
  4259.   Input "Quale personaggio vuole prendere (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4260.   Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4261.   Locate 0,ULTIMALINEA : Cline 
  4262.  Until PARA<>P
  4263. Else If AZIONE=23
  4264.  Repeat 
  4265.   Input "Quale personaggio vuole seguire (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4266.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4267.   Locate 0,ULTIMALINEA : Cline 
  4268.  Until PARA<>P
  4269. Else If AZIONE=24
  4270.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4271.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4272. Else If AZIONE=25
  4273.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4274.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4275.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4276.  PARABAZIONEP(A,P)=Param
  4277. Else If AZIONE=26
  4278.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4279.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4280.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4281.  PARABAZIONEP(A,P)=Param
  4282. Else If AZIONE=27
  4283.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARA;
  4284.  Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4285. Else If AZIONE=28
  4286.  Repeat 
  4287.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4288.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4289.   Locate 0,ULTIMALINEA : Cline 
  4290.  Until PARA<>P
  4291. Else If AZIONE=29
  4292.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4293.  PARAAAZIONEP(A,P)=Param
  4294.  Locate 0,ULTIMALINEA : Cline 
  4295.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4296.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4297. Else If AZIONE=30
  4298.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4299.  PARAAAZIONEP(A,P)=Param
  4300.  Locate 0,ULTIMALINEA : Cline 
  4301.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4302.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4303.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4304.  PARACAZIONEP(A,P)=Param
  4305. Else If AZIONE=31
  4306.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4307.  PARAAAZIONEP(A,P)=Param
  4308.  Locate 0,ULTIMALINEA : Cline 
  4309.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4310.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4311.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4312.  PARACAZIONEP(A,P)=Param
  4313. Else If AZIONE=32
  4314.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4315.  PARAAAZIONEP(A,P)=Param
  4316.  Locate 0,ULTIMALINEA : Cline 
  4317.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4318.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4319. Else If AZIONE=33
  4320.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4321.  PARAAAZIONEP(A,P)=Param
  4322.  Locate 0,ULTIMALINEA : Cline 
  4323.  Repeat 
  4324.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4325.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4326.   Locate 0,ULTIMALINEA : Cline 
  4327.  Until PARB<>P
  4328. Else If AZIONE=34
  4329.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4330.  PARAAAZIONEP(A,P)=Param
  4331.  Cls 
  4332.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4333.  Locate 0,ULTIMALINEA : Cline 
  4334.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4335.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4336. Else If AZIONE=35
  4337.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4338.  PARAAAZIONEP(A,P)=Param
  4339.  Cls 
  4340.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4341.  Locate 0,ULTIMALINEA : Cline 
  4342.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4343.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4344.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4345.  PARACAZIONEP(A,P)=Param
  4346. Else If AZIONE=36
  4347.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4348.  PARAAAZIONEP(A,P)=Param
  4349.  Cls 
  4350.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4351.  Locate 0,ULTIMALINEA : Cline 
  4352.  Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4353.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4354.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4355.  PARACAZIONEP(A,P)=Param
  4356. Else If AZIONE=37
  4357.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4358.  PARAAAZIONEP(A,P)=Param
  4359.  Cls 
  4360.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4361.  Locate 0,ULTIMALINEA : Cline 
  4362.  Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4363.  Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4364. Else If AZIONE=38
  4365.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4366.  PARAAAZIONEP(AZIONE,P)=Param
  4367.  Cls 
  4368.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4369.  Locate 0,ULTIMALINEA : Cline 
  4370.  Repeat 
  4371.   Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4372.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4373.   Locate 0,ULTIMALINEA : Cline 
  4374.  Until PARB<>P
  4375. Else If AZIONE=40
  4376.  Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4377.  PARAAAZIONEP(A,P)=Param
  4378. Else If AZIONE=41
  4379.  Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4380.  PARAAAZIONEP(A,P)=Param
  4381. End If 
  4382. End Proc
  4383. Procedure INVENTARIO
  4384. Cls 
  4385. Print "Inventario degli oggetti e dei personaggi trasportati da ";NOMEP$(0);">"
  4386. For A=0 To NUMEROO
  4387.  If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4388.   OGGETTIPRESENTI=True
  4389.  End If 
  4390. Next A
  4391. If SOLDIP(0)>0 Then OGGETTIPRESENTI=True
  4392. If OGGETTIPRESENTI=True
  4393.  For A=0 To NUMEROCO
  4394.   If OGGETTIDELPERSONAGGIO0(A)>0
  4395.    Print Str$(OGGETTIDELPERSONAGGIO0(A))-" ";" ";
  4396.    If OGGETTIDELPERSONAGGIO0(A)=1
  4397.     Print NOMESCO$(A)
  4398.    Else 
  4399.     Print NOMEPCO$(A)
  4400.    End If 
  4401.    Proc FONDOSCHERMOGIOCO
  4402.   End If 
  4403.   If RESTIDELPERSONAGGIO0(A)>0
  4404.    Print Str$(RESTIDELPERSONAGGIO0(A))-" ";" ";
  4405.    If RESTIDELPERSONAGGIO0(A)=1
  4406.     Print NOMESRO$(A)
  4407.    Else 
  4408.     Print NOMEPRO$(A)
  4409.    End If 
  4410.    Proc FONDOSCHERMOGIOCO
  4411.   End If 
  4412.  Next A
  4413.  If SOLDIP(0)>0
  4414.   Print Str$(SOLDIP(0))-" ";" ";
  4415.   If SOLDIP(0)=1
  4416.    Print "soldo"
  4417.   Else 
  4418.    Print "soldi"
  4419.   End If 
  4420.   Proc FONDOSCHERMOGIOCO
  4421.  End If 
  4422. Else 
  4423.  Print "Nessun oggetto trasportato"
  4424. End If 
  4425. For A=1 To NUMEROP
  4426.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True Then PERSONAGGIPRESENTI=True
  4427. Next A
  4428. If PERSONAGGIPRESENTI=True
  4429.  Print "Personaggi trasportati da ";NOMEP$(0);">"
  4430.  For A=1 To NUMEROP
  4431.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4432.    Print NOMEP$(A)
  4433.   End If 
  4434.   Proc FONDOSCHERMOGIOCO
  4435.  Next A
  4436. Else 
  4437.  Print "Nessun personaggio trasportato"
  4438. End If 
  4439. If OGGETTIPRESENTI=True or PERSONAGGIPRESENTI=True
  4440.  Print "Peso totale degli oggetti e dei personaggi trasportati>";
  4441.  If PESONETTOP(0)>999
  4442.   PESOOEPDELP0=PESONETTOP(0)/1000
  4443.   Print Str$(PESOOEPDELP0)-" ";" ";
  4444.   If PESOOEPDELP0=1
  4445.    Print "chilo";
  4446.   Else 
  4447.    Print "chili";
  4448.   End If 
  4449.   PESOOEPDELP0=PESONETTOP(0) mod 1000
  4450.   If PESOOEPDELP0>0
  4451.    Print " e";PESOOEPDELP0;" ";
  4452.    If PESOOEPDELP0=1
  4453.     Print "grammo"
  4454.    Else 
  4455.     Print "grammi"
  4456.    End If 
  4457.   Else 
  4458.    Print 
  4459.   End If 
  4460.  Else 
  4461.   PESOOEPDELP0=PESONETTOP(0)
  4462.   Print Str$(PESOOEPDELP0)-" ";" ";
  4463.   If PESOOEPDELP0=1
  4464.    Print "grammo"
  4465.   Else 
  4466.    Print "grammi"
  4467.   End If 
  4468.  End If 
  4469. End If 
  4470. Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4471. End Proc
  4472. Procedure LASCIA
  4473. If TEMP0DIATTRAVERSAMENTOP(0)>0
  4474.  For A=1 To NUMEROP
  4475.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4476.    Inc PERSONAGGI
  4477.   End If 
  4478.  Next A
  4479.  If PERSONAGGI>0
  4480.   Proc LASCIAUNPERSONAGGIO
  4481.  Else 
  4482.   Print At(0,ULTIMALINEA);"Non hai personaggi da lasciare";
  4483.   If _MUSICA=False
  4484.    Bell 1
  4485.   End If 
  4486.   Proc _ASPETTA
  4487.   Pop Proc
  4488.  End If 
  4489. Else 
  4490.  For A=1 To NUMEROP
  4491.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4492.    Inc PERSONAGGI
  4493.   End If 
  4494.  Next A
  4495. End If 
  4496. For A=0 To NUMEROCO
  4497.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4498.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4499. Next A
  4500. If SOLDIP(0)>0 Then SOLDI=True
  4501. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  4502.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  4503.  OGGETTOOPERSONAGGIO$=Input$(1)
  4504.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4505.  If OGGETTOOPERSONAGGIO$="o"
  4506.   Proc LASCIAUNOGGETTO
  4507.  Else If OGGETTOOPERSONAGGIO$="p"
  4508.   Proc LASCIAUNPERSONAGGIO
  4509.  Else If OGGETTOOPERSONAGGIO$="s"
  4510.   Proc LASCIADEISOLDI
  4511.  End If 
  4512. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  4513.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto o dei soldi (o/s) ?>";
  4514.  OGGETTOOSOLDI$=Input$(1)
  4515.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  4516.  If OGGETTOOSOLDI$="o"
  4517.   Proc LASCIAUNOGGETTO
  4518.  Else If OGGETTOOSOLDI$="s"
  4519.   Proc LASCIADEISOLDI
  4520.  End If 
  4521. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  4522.  Print At(0,ULTIMALINEA);"Vuoi lasciare un personaggio o dei soldi (p/s) ?>";
  4523.  PERSONAGGIOOSOLDI$=Input$(1)
  4524.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  4525.  If PERSONAGGIOOSOLDI$="p"
  4526.   Proc LASCIAUNPERSONAGGIO
  4527.  Else If PERSONAGGIOOSOLDI$="s"
  4528.   Proc LASCIADEISOLDI
  4529.  End If 
  4530. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  4531.  Proc LASCIADEISOLDI
  4532. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  4533.  Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto od un personaggio (o/p) ?>";
  4534.  OGGETTOOPERSONAGGIO$=Input$(1)
  4535.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4536.  If OGGETTOOPERSONAGGIO$="o"
  4537.   Proc LASCIAUNOGGETTO
  4538.  Else If OGGETTOOPERSONAGGIO$="p"
  4539.   Proc LASCIAUNPERSONAGGIO
  4540.  End If 
  4541. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  4542.  Proc LASCIAUNOGGETTO
  4543. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  4544.  Proc LASCIAUNPERSONAGGIO
  4545. Else 
  4546.  Print At(0,ULTIMALINEA);"Non hai oggetti,personaggi o soldi da lasciare";
  4547.  If _MUSICA=False
  4548.   Bell 1
  4549.  End If 
  4550.  Proc _ASPETTA
  4551. End If 
  4552. End Proc
  4553. Procedure LASCIAAO[AZIONE,P]
  4554. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4555. For A=0 To NUMEROO
  4556.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4557.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4558.   B=A
  4559.  End If 
  4560. Next A
  4561. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4562.  Pop Proc
  4563. End If 
  4564. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4565.  A=B
  4566. Else 
  4567.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4568.  B=0
  4569.  For A=0 To NUMEROO
  4570.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4571.    OGGETTODELPERSONAGGIOP(B)=A
  4572.    Inc B
  4573.   End If 
  4574.  Next A
  4575.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4576. End If 
  4577. POSIZIONEO(A)=POSIZIONEP(P)
  4578. If Btst(1,TIPOO(A))=True
  4579.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4580. Else 
  4581.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4582. End If 
  4583. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4584.  For B=0 To NUMEROO
  4585.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4586.    If Btst(1,TIPOO(B))=True
  4587.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4588.    Else 
  4589.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4590.    End If 
  4591.   End If 
  4592.  Next B
  4593.  For B=1 To NUMEROP
  4594.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4595.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4596.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4597.   End If 
  4598.  Next B
  4599. End If 
  4600. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4601.  Print NOMEP$(P);" lascia 1 ";
  4602.  If Btst(1,TIPOO(A))=True
  4603.   Print NOMESRO$(CATEGORIAO(A))
  4604.  Else 
  4605.   Print NOMESCO$(CATEGORIAO(A))
  4606.  End If 
  4607. End If 
  4608. Dec PARAAAZIONEP(AZIONE,P)
  4609. If PARAAAZIONEP(AZIONE,P)=0
  4610.  FINEA(AZIONE,P)=True
  4611. End If 
  4612. End Proc
  4613. Procedure LASCIAAOB[AZIONE,P]
  4614. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4615. For A=0 To NUMEROO
  4616.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4617.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4618.   B=A
  4619.  End If 
  4620. Next A
  4621. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4622.  Pop Proc
  4623. End If 
  4624. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4625.  A=B
  4626. Else 
  4627.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4628.  B=0
  4629.  For A=0 To NUMEROO
  4630.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4631.    OGGETTODELPERSONAGGIOP(B)=A
  4632.    Inc B
  4633.   End If 
  4634.  Next A
  4635.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4636. End If 
  4637. POSIZIONEO(A)=POSIZIONEP(P)
  4638. If Btst(1,TIPOO(A))=True
  4639.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4640. Else 
  4641.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4642. End If 
  4643. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4644.  For B=0 To NUMEROO
  4645.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4646.    If Btst(1,TIPOO(B))=True
  4647.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4648.    Else 
  4649.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4650.    End If 
  4651.   End If 
  4652.  Next B
  4653.  For B=1 To NUMEROP
  4654.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4655.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4656.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4657.   End If 
  4658.  Next B
  4659. End If 
  4660. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4661.  Print NOMEP$(P);" lascia 1 ";
  4662.  If Btst(1,TIPOO(A))=True
  4663.   Print NOMESRO$(CATEGORIAO(A))
  4664.  Else 
  4665.   Print NOMESCO$(CATEGORIAO(A))
  4666.  End If 
  4667. End If 
  4668. Dec PARAAAZIONEP(AZIONE,P)
  4669. If PARAAAZIONEP(AZIONE,P)=0
  4670.  FINEA(AZIONE,P)=True
  4671. End If 
  4672. End Proc
  4673. Procedure LASCIAAOTB[AZIONE,P]
  4674. NUMEROOGGETTIDELPERSONAGGIOP=-1
  4675. For A=0 To NUMEROO
  4676.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4677.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  4678.   B=A
  4679.  End If 
  4680. Next A
  4681. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  4682.  Pop Proc
  4683. End If 
  4684. If NUMEROOGGETTIDELPERSONAGGIOP=0
  4685.  A=B
  4686. Else 
  4687.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  4688.  B=0
  4689.  For A=0 To NUMEROO
  4690.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4691.    OGGETTODELPERSONAGGIOP(B)=A
  4692.    Inc B
  4693.   End If 
  4694.  Next A
  4695.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  4696. End If 
  4697. POSIZIONEO(A)=POSIZIONEP(P)
  4698. If Btst(1,TIPOO(A))=True
  4699.  Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4700. Else 
  4701.  Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4702. End If 
  4703. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4704.  For B=0 To NUMEROO
  4705.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4706.    If Btst(1,TIPOO(B))=True
  4707.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4708.    Else 
  4709.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4710.    End If 
  4711.   End If 
  4712.  Next B
  4713.  For B=1 To NUMEROP
  4714.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4715.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4716.    Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4717.   End If 
  4718.  Next B
  4719. End If 
  4720. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4721.  Print NOMEP$(P);" lascia 1 ";
  4722.  If Btst(1,TIPOO(A))=True
  4723.   Print NOMESRO$(CATEGORIAO(A))
  4724.  Else 
  4725.   Print NOMESCO$(CATEGORIAO(A))
  4726.  End If 
  4727. End If 
  4728. Dec PARAAAZIONEP(AZIONE,P)
  4729. If PARAAAZIONEP(AZIONE,P)=0
  4730.  FINEA(AZIONE,P)=True
  4731. End If 
  4732. End Proc
  4733. Procedure LASCIAAP[AZIONE,P]
  4734. For A=1 To NUMEROP
  4735.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4736.   POSIZIONEP(A)=POSIZIONEP(P)
  4737.   TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4738.   Bclr 0,TIPOP(A)
  4739.   Add PESONETTOP(P),-PESOP(A)*1000
  4740.   Add PESONETTOP(P),-PESONETTOP(A)
  4741.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4742.    Print NOMEP$(P);" lascia ";NOMEP$(A)
  4743.   End If 
  4744.   Dec PARABAZIONEP(AZIONE,P)
  4745.   If PARABAZIONEP(AZIONE,P)=0
  4746.    FINEA(AZIONE,P)=True
  4747.   End If 
  4748.   Exit 
  4749.  End If 
  4750. Next A
  4751. End Proc
  4752. Procedure LASCIADEISOLDI
  4753. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi lasciare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDI$;
  4754. Curs Off 
  4755. If SOLDI$<>""
  4756.  SOLDI=Val(SOLDI$)
  4757.  Proc LIMITI[SOLDI,0,SOLDIP(0)] : SOLDI=Param
  4758.  If SOLDI>0
  4759.   Add SOLDIP(0),-SOLDI
  4760.   E=POSIZIONEP(0)/$10000
  4761.   If E>0
  4762.    S=POSIZIONEP(0) mod $10000
  4763.    Add SOLDIS(S,E-1),SOLDI
  4764.   Else 
  4765.    Add SOLDIL(POSIZIONEP(0)),SOLDI
  4766.   End If 
  4767.   Add PESONETTOP(0),-SOLDI*PESOS
  4768.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4769.   Print "Hai deciso di lasciare";SOLDI;
  4770.   If SOLDI=1
  4771.    Print " soldo";
  4772.   Else 
  4773.    Print " soldi";
  4774.   End If 
  4775.   Proc _ASPETTA
  4776.  End If 
  4777. End If 
  4778. End Proc
  4779. Procedure LASCIAOGGETTO[O]
  4780. POSIZIONEO(O)=POSIZIONEP(0)
  4781. If Btst(1,TIPOO(O))=True
  4782.  Dec RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  4783.  Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(O))
  4784. Else 
  4785.  Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  4786.  Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  4787.  Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  4788. End If 
  4789. If Btst(1,TIPOCO(CATEGORIAO(O)))=True
  4790.  For A=0 To NUMEROO
  4791.   If POSIZIONEO(A)=-1-O and Btst(0,TIPOO(A))=False
  4792.    If Btst(1,TIPOO(A))=True
  4793.     Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(A))
  4794.    Else 
  4795.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(A))
  4796.    End If 
  4797.   End If 
  4798.  Next A
  4799.  For A=1 To NUMEROP
  4800.   If POSIZIONEP(A)=-1-O and Btst(0,TIPOP(A))=False
  4801.    Add PESONETTOP(0),-PESOP(A)*1000
  4802.    Add PESONETTOP(0),-PESONETTOP(A)
  4803.   End If 
  4804.  Next A
  4805. End If 
  4806. COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4807. Print "Hai deciso di lasciare 1 ";
  4808. If Btst(1,TIPOO(O))=True
  4809.  Print NOMESRO$(CATEGORIAO(O));
  4810. Else 
  4811.  Print NOMESCO$(CATEGORIAO(O));
  4812. End If 
  4813. Proc _ASPETTA
  4814. End Proc
  4815. Procedure LASCIAPA[AZIONE,P]
  4816. A=PARAAAZIONEP(AZIONE,P)
  4817. If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4818.  POSIZIONEP(A)=POSIZIONEP(P)
  4819.  TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4820.  Bclr 0,TIPOP(A)
  4821.  Add PESONETTOP(P),-PESOP(A)*1000
  4822.  Add PESONETTOP(P),-PESONETTOP(A)
  4823.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4824.   Print NOMEP$(P);" lascia ";NOMEP$(A)
  4825.  End If 
  4826.  FINEA(AZIONE,P)=True
  4827. End If 
  4828. End Proc
  4829. Procedure LASCIAPASSAREILTEMPO
  4830. COMPIUTAAZIONE=5
  4831. Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
  4832. Proc _ASPETTA
  4833. End Proc
  4834. Procedure LASCIAUNOGGETTO
  4835. For A=0 To NUMEROCO
  4836.  If OGGETTIDELPERSONAGGIO0(A)>0
  4837.   Inc CATEGORIEOGGETTI
  4838.  End If 
  4839.  If RESTIDELPERSONAGGIO0(A)>0
  4840.   Inc CATEGORIEOGGETTI
  4841.  End If 
  4842. Next A
  4843. OGGETTODIFENSIVOINDOSSATO=-1
  4844. For A=0 To NUMEROO
  4845. If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4846.  If Btst(2,TIPOO(A))=True
  4847.   OGGETTODIFENSIVOINDOSSATO=A
  4848.  Else 
  4849.   Inc OGGETTIERESTIDIFENSIVINONINDOSSATI
  4850.   If Btst(1,TIPOO(A))=True
  4851.    Inc RESTIDIFENSIVINONINDOSSATI
  4852.   Else 
  4853.    Inc OGGETTIDIFENSIVINONINDOSSATI
  4854.   End If 
  4855.  End If 
  4856. End If 
  4857. Next A
  4858. If CATEGORIEOGGETTI>0
  4859.  If CATEGORIEOGGETTI>1
  4860.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi lasciare ?>";OGGETTO$;
  4861.   Curs Off 
  4862.   If OGGETTO$<>""
  4863.    For A=0 To NUMEROO
  4864.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4865.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  4866.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4867.        If OGGETTODIFENSIVOINDOSSATO>-1
  4868.         If OGGETTIDIFENSIVINONINDOSSATI=0
  4869.          Bclr 2,TIPOO(A)
  4870.          Proc LASCIAOGGETTO[A] : Exit 
  4871.         Else 
  4872.          If A<>OGGETTODIFENSIVOINDOSSATO
  4873.           Proc LASCIAOGGETTO[A] : Exit 
  4874.          Else 
  4875.           If RESTIDIFENSIVINONINDOSSATI>0
  4876.            Bclr 2,TIPOO(A)
  4877.            Proc LASCIAOGGETTO[A] : Exit 
  4878.           End If 
  4879.          End If 
  4880.         End If 
  4881.        Else 
  4882.         Proc LASCIAOGGETTO[A] : Exit 
  4883.        End If 
  4884.       Else 
  4885.        Proc LASCIAOGGETTO[A] : Exit 
  4886.       End If 
  4887.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  4888.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4889.        If OGGETTODIFENSIVOINDOSSATO>-1
  4890.         If RESTIDIFENSIVINONINDOSSATI=0
  4891.          Bclr 2,TIPOO(A)
  4892.          Proc LASCIAOGGETTO[A] : Exit 
  4893.         Else 
  4894.          If A<>OGGETTODIFENSIVOINDOSSATO
  4895.           Proc LASCIAOGGETTO[A] : Exit 
  4896.          Else 
  4897.           If OGGETTIDIFENSIVINONINDOSSATI>0
  4898.            Bclr 2,TIPOO(A)
  4899.            Proc LASCIAOGGETTO[A] : Exit 
  4900.           End If 
  4901.          End If 
  4902.         End If 
  4903.        Else 
  4904.         Proc LASCIAOGGETTO[A] : Exit 
  4905.        End If 
  4906.       Else 
  4907.        Proc LASCIAOGGETTO[A] : Exit 
  4908.       End If 
  4909.      End If 
  4910.     End If 
  4911.    Next A
  4912.    If A=NUMEROO+1
  4913.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  4914.     If _MUSICA=False
  4915.      Bell 1
  4916.     End If 
  4917.     Proc _ASPETTA
  4918.    End If 
  4919.   End If 
  4920.  Else 
  4921.   For A=0 To NUMEROO
  4922.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4923.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4924.      If OGGETTODIFENSIVOINDOSSATO>-1
  4925.       If OGGETTIERESTIDIFENSIVINONINDOSSATI=0
  4926.        Bclr 2,TIPOO(A)
  4927.        Proc LASCIAOGGETTO[A] : Exit 
  4928.       Else 
  4929.        If A<>OGGETTODIFENSIVOINDOSSATO
  4930.         Proc LASCIAOGGETTO[A] : Exit 
  4931.        End If 
  4932.       End If 
  4933.      Else 
  4934.       Proc LASCIAOGGETTO[A] : Exit 
  4935.      End If 
  4936.     Else 
  4937.      Proc LASCIAOGGETTO[A] : Exit 
  4938.     End If 
  4939.    End If 
  4940.   Next A
  4941.  End If 
  4942. End If 
  4943. End Proc
  4944. Procedure LASCIAUNPERSONAGGIO
  4945. For A=1 To NUMEROP
  4946.  If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4947.   Inc PERSONAGGI
  4948.  End If 
  4949. Next A
  4950. If PERSONAGGI>0
  4951.  If PERSONAGGI>1
  4952.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi lasciare ?>";PERSONAGGIO$;
  4953.   Curs Off 
  4954.   If PERSONAGGIO$<>""
  4955.    For A=0 To NUMEROP
  4956.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4957.      POSIZIONEP(A)=POSIZIONEP(0)
  4958.      TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4959.      DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4960.      Add PESONETTOP(0),-PESOP(A)*1000
  4961.      Add PESONETTOP(0),-PESONETTOP(A)
  4962.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4963.      Print "Hai deciso di lasciare ";NOMEP$(A);
  4964.      Proc _ASPETTA : Exit 
  4965.     End If 
  4966.    Next A
  4967.    If A=NUMEROP+1
  4968.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4969.     If _MUSICA=False
  4970.      Bell 1
  4971.     End If 
  4972.     Proc _ASPETTA
  4973.    End If 
  4974.   End If 
  4975.  Else 
  4976.   For A=0 To NUMEROP
  4977.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4978.     POSIZIONEP(A)=POSIZIONEP(0)
  4979.     TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4980.     DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4981.     Add PESONETTOP(0),-PESOP(A)*1000
  4982.     Add PESONETTOP(0),-PESONETTOP(A)
  4983.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4984.     Print "Hai deciso di lasciare ";NOMEP$(A);
  4985.     Proc _ASPETTA : Exit 
  4986.    End If 
  4987.   Next A
  4988.  End If 
  4989. End If 
  4990. End Proc
  4991. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  4992. '-> Limiti by Stefano Regattin 
  4993. 'i> 19 maggio 1996 
  4994. 'm> 12 giugno 1996 
  4995. '--------------------------------------------------------
  4996. 'La procedura equivale alle seguenti linee di programma: 
  4997. ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  4998. ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  4999. 'Se LIMITEMINIMO ï¿½ maggiore di LIMITEMASSIMO ne scambia i valori 
  5000. '----------------------------------------------------------------  
  5001. If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  5002. NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  5003. End Proc[NUMERO]
  5004. Procedure LUOGO
  5005. Print "Regione>";NOMER$(REGIONEL(POSIZIONEP(0)))
  5006. Print "Luogo>";NOMEL$(POSIZIONEP(0))
  5007. Print "Direzioni visibili>";
  5008. For A=0 To 9
  5009.  DREZIONE=DREZIONEL(A,POSIZIONEP(0)) mod $10000
  5010.  If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  5011. Next A
  5012. Print 
  5013. End Proc
  5014. Procedure MESSAGGIO[MESSAGGIO$]
  5015. Locate 0,ULTIMALINEA
  5016. If CARATTEREMESSAGGIO=0
  5017. 'Ink 0,1 : Text 0,254,Space$(80) : Ink 1,0 
  5018.  Inverse On : Print Space$(80);
  5019. End If 
  5020. Hscroll 1
  5021. Add CARATTEREMESSAGGIO,1,1 To Len(MESSAGGIO$)
  5022. 'Ink 0,1 
  5023. Inverse On 
  5024. 'Text 631,ULTIMALINEA*8-1+7,Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1)
  5025. Print At(79,ULTIMALINEA);Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1);
  5026. 'Ink 1,0 
  5027. Inverse Off 
  5028. Wait 5
  5029. End Proc
  5030. Procedure M0DCATEGORIADEGLIOGGETTI
  5031. Cls 
  5032. Print "Nome singolare della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5033. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5034. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMESCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5035. Cls 
  5036. Print "Nome plurale della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  5037. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5038. If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMEPCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5039. Cls 
  5040. Print "Nome singolare del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESRO$(CATEGORIADEGLIOGGETTI)
  5041. Locate 0,ULTIMALINEA : Input "Nuovo nome singolare del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5042. If NOMERESTODEGLIOGGETTI$<>"" Then NOMESRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5043. Cls 
  5044. Print "Nome plurale del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  5045. Locate 0,ULTIMALINEA : Input "Nuovo nome plurale del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5046. If NOMERESTODEGLIOGGETTI$<>"" Then NOMEPRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5047. Cls 
  5048. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  5049. Print "Peso della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESOOGGETTO)-" ";" ";
  5050. If PESOOGGETTO=1
  5051.  Print "grammo"
  5052. Else 
  5053.  Print "grammi"
  5054. End If 
  5055. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria degli oggetti in grammi>";PESOCATEGORIADEGLIOGGETTI$;
  5056. If PESOCATEGORIADEGLIOGGETTI$<>"" Then PESOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEGLIOGGETTI$)
  5057. Cls 
  5058. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  5059. Print "Peso della categoria dei resti degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESORESTOOGGETTO)-" ";" ";
  5060. If PESORESTOOGGETTO=1
  5061.  Print "grammo"
  5062. Else 
  5063.  Print "grammi"
  5064. End If 
  5065. Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria dei resti degli oggetti in grammi>";PESOCATEGORIADEIRESTIDEGLIOGGETTI$;
  5066. If PESOCATEGORIADEIRESTIDEGLIOGGETTI$<>"" Then PESORESTOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEIRESTIDEGLIOGGETTI$)
  5067. Curs Off 
  5068. Cls 
  5069. Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";
  5070. Print NOMESCO$(CATEGORIADEGLIOGGETTI)
  5071. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano commestibili (s/n) ?>";
  5072. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5073. If RISPOSTA$="s"
  5074.  Bset 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5075. Else 
  5076.  Bclr 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5077. End If 
  5078. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano contenitori (s/n) ?>";
  5079. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5080. If RISPOSTA$="s"
  5081.  Bset 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5082. Else 
  5083.  If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True
  5084.   For A=0 To NUMEROO
  5085.    For B=0 To NUMEROO
  5086.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and A<>B
  5087.      POSIZIONEO(B)=POSIZIONEO(A)
  5088.     End If 
  5089.    Next B
  5090.    For B=0 To NUMEROP
  5091.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  5092.      POSIZIONEP(B)=POSIZIONEO(A)
  5093.     End If 
  5094.    Next B
  5095.   Next A
  5096.  End If 
  5097.  Bclr 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5098. End If 
  5099. Locate 0,ULTIMALINEA : Cline 
  5100. Print "Vuoi che gli oggetti siano difensivi (s/n) ?>";
  5101. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5102. If RISPOSTA$="s"
  5103.  Bset 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5104. Else 
  5105.  Bclr 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5106. End If 
  5107. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano leggibili (s/n) ?>";
  5108. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5109. If RISPOSTA$="s"
  5110.  Bset 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5111. Else 
  5112.  Bclr 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5113. End If 
  5114. Locate 0,ULTIMALINEA : Cline 
  5115. Print "Vuoi che gli oggetti siano liquidi o solidi (l/s) ?>";
  5116. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5117. If RISPOSTA$="l"
  5118.  Bset 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5119. Else 
  5120.  Bclr 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5121. End If 
  5122. Locate 0,ULTIMALINEA : Cline 
  5123. Print "Vuoi che gli oggetti siano magici (s/n) ?>";
  5124. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5125. If RISPOSTA$="s"
  5126.  Bset 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5127. Else 
  5128.  Bclr 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5129. End If 
  5130. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano offensivi (s/n) ?>";
  5131. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5132. If RISPOSTA$="s"
  5133.  Bset 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5134. Else 
  5135.  Bclr 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5136. End If 
  5137.  For A=0 To NUMEROO
  5138.   If POSIZIONEO(A)<0
  5139.    NONRESIDENTI=True
  5140.   End If 
  5141.  Next A
  5142. If NONRESIDENTI=True
  5143.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano residenti (s/n) ?>";
  5144.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5145.  If RISPOSTA$="s"
  5146.   Bset 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5147.  Else 
  5148.   Bclr 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5149.  End If 
  5150. End If 
  5151. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano trasferibili (s/n) ?>";
  5152. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5153. If RISPOSTA$="s"
  5154.  Bset 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5155. Else 
  5156.  Bclr 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5157. End If 
  5158. Locate 0,ULTIMALINEA : Cline 
  5159. Print "Vuoi che gli oggetti siano trasparenti (s/n) ?>";
  5160. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5161. If RISPOSTA$="s"
  5162.  Bset 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5163. Else 
  5164.  Bclr 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5165. End If 
  5166. Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano vincolati ad un oggetto (s/n) ?>";
  5167. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5168. If RISPOSTA$="s"
  5169.  Repeat 
  5170.   Cls 
  5171.   Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5172.   Print At(0,ULTIMALINEA-1);"Scegli l'oggetto vincolante>";NOMESCO$(CO)
  5173.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto vincolante Spazio conferma",ULTIMALINEA]
  5174.   Repeat 
  5175.    TASTOPREMUTO$=Inkey$
  5176.   Until TASTOPREMUTO$<>""
  5177.   If TASTOPREMUTO$=Cup$ : Add CO,-1,0 To NUMEROCO : End If 
  5178.   If TASTOPREMUTO$=Cdown$ : Add CO,1,0 To NUMEROCO : End If 
  5179.  Until TASTOPREMUTO$=" "
  5180.  PARATIPOCO(CATEGORIADEGLIOGGETTI)=CO
  5181.  Bset 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5182. Else 
  5183.  Bclr 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5184.  Cls 
  5185.  Print "Parametro della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  5186.  Locate 0,ULTIMALINEA : Input "Nuovo parametro della categoria degli oggetti>";PARACATEGORIADEGLIOGGETTI$;
  5187.  If PARACATEGORIADEGLIOGGETTI$<>""
  5188.   PARATIPOCO(CATEGORIADEGLIOGGETTI)=Val(PARACATEGORIADEGLIOGGETTI$)
  5189.  End If 
  5190. End If 
  5191. Curs Off 
  5192. End Proc
  5193. Procedure M0DDESCRIZIONE[DESCRIZIONE$]
  5194. INIZIODESCRIZIONE=1
  5195. FINEDESCRIZIONE=Min(Len(DESCRIZIONE$),32*80-1)
  5196. Curs Off 
  5197. Repeat 
  5198.  Cls 
  5199.  For DESCRIZIONE=INIZIODESCRIZIONE To FINEDESCRIZIONE
  5200.   Print Mid$(DESCRIZIONE$,DESCRIZIONE,1);
  5201.   Exit If FINEDESCRIZIONE-INIZIODESCRIZIONE=32*80-2
  5202.   Exit If DESCRIZIONE=Len(DESCRIZIONE$)
  5203.  Next DESCRIZIONE
  5204.  Wait Vbl 
  5205.  POSIZIONEY=DESCRIZIONE/80
  5206.  Curs On 
  5207.  Repeat 
  5208.   If RICORDA=True
  5209.    DISTANZAY=Y Curs-RICORDAY
  5210.    Add POSIZIONEY,-DISTANZAY
  5211.    Locate RICORDAX,RICORDAY : RICORDA=False
  5212.   End If 
  5213.   BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5214.   BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5215.   Repeat 
  5216.    TASTO$=Inkey$
  5217.    CODICESCANSIONE=Scancode
  5218.   Until TASTO$<>""
  5219.   If Asc(TASTO$)=0
  5220.    If CODICESCANSIONE=70 and Len(BLOCCOSUCCESSIVO$)>0
  5221.     BLOCCOSUCCESSIVO$=Right$(BLOCCOSUCCESSIVO$,Len(BLOCCOSUCCESSIVO$)-1)
  5222.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5223.     RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5224.     INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAY*80,1)
  5225.     FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5226.     Exit 
  5227.    End If 
  5228.   Else 
  5229.    If TASTO$=Chr$(8)
  5230.     BLOCCOPRECEDENTE$=Left$(BLOCCOPRECEDENTE$,Len(BLOCCOPRECEDENTE$)-1)
  5231.     DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5232.     RICORDAX=X Curs-1 : RICORDAY=Y Curs
  5233.     If RICORDAX=-1
  5234.      RICORDAX=79 : Dec RICORDAY
  5235.      If RICORDAY=-1
  5236.       If POSIZIONEY>0
  5237.        Vscroll 1 : RICORDAX=0 : RICORDAY=0 : Dec POSIZIONEY
  5238.        INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5239.       Else 
  5240.        RICORDAX=0 : RICORDAY=0
  5241.       End If 
  5242.      End If 
  5243.     End If 
  5244.     XG=X Graphic(RICORDAX) : YG=Y Graphic(RICORDAY)
  5245.     Ink 0 : Bar XG,YG To XG+7,YG+7 : Ink 1
  5246.     INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5247.     FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5248.     RICORDA=True
  5249.     Exit 
  5250.    Else If TASTO$=Cup$
  5251.     If Y Curs=0
  5252.      If POSIZIONEY>31
  5253.       Vscroll 1 : Dec POSIZIONEY
  5254.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5255.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5256.       RICORDAX=0 : RICORDAY=0 : RICORDA=True
  5257.       INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5258.       Exit 
  5259.      End If 
  5260.     Else 
  5261.      Cmove ,-1 : Dec POSIZIONEY
  5262.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5263.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5264.     End If 
  5265.    Else If TASTO$=Cdown$
  5266.     If Y Curs=32
  5267.      If Len(BLOCCOSUCCESSIVO$)>79
  5268.       Vscroll 3 : Inc POSIZIONEY
  5269.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5270.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5271.      End If 
  5272.     Else 
  5273.      If Len(BLOCCOSUCCESSIVO$)>79
  5274.       Cmove ,1 : Inc POSIZIONEY
  5275.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5276.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5277.      End If 
  5278.     End If 
  5279.    Else If TASTO$=Cleft$
  5280.     If X Curs=0
  5281.      If Y Curs=0
  5282.       If POSIZIONEY>0
  5283.        Vscroll 1 : Dec POSIZIONEY
  5284.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5285.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5286.       End If 
  5287.      Else 
  5288.       Locate 79, : Cmove ,-1 : Dec POSIZIONEY
  5289.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5290.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5291.      End If 
  5292.     Else 
  5293.      Cmove -1,
  5294.      BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5295.      BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5296.     End If 
  5297.    Else If TASTO$=Cright$
  5298.     If X Curs=79
  5299.      If Y Curs=32
  5300.       If Len(BLOCCOSUCCESSIVO$)>0
  5301.        Vscroll 3 : Inc POSIZIONEY
  5302.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5303.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5304.       End If 
  5305.      Else 
  5306.       Locate 0, : Cmove ,1 : Inc POSIZIONEY
  5307.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5308.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5309.      End If 
  5310.     Else 
  5311.      If Len(BLOCCOSUCCESSIVO$)>0
  5312.       Cmove 1,
  5313.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5314.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5315.      End If 
  5316.     End If 
  5317.    Else 
  5318.     CARATTERIVALIDI$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz������!',;.:1234567890 "
  5319.     If Instr(CARATTERIVALIDI$,TASTO$)>0
  5320.      DESCRIZIONE$=BLOCCOPRECEDENTE$+TASTO$+BLOCCOSUCCESSIVO$
  5321.      If Len(BLOCCOSUCCESSIVO$)>0
  5322.       RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5323.       INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5324.       FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5325.       Exit 
  5326.      Else 
  5327.       ULTIMACOLONNA=X Curs
  5328.       Print TASTO$;
  5329.       If ULTIMACOLONNA=79
  5330.        Inc POSIZIONEY
  5331.        If Y Curs=31
  5332.         Vscroll 3
  5333.         RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5334.         INIZIODESCRIZIONE=Max(POSIZIONEY*80-79,1)
  5335.         FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5336.         Exit 
  5337.        End If 
  5338.       End If 
  5339.      End If 
  5340.     End If 
  5341.    End If 
  5342.   End If 
  5343.  Until TASTO$=Chr$(27)
  5344. Until TASTO$=Chr$(27)
  5345. Curs Off 
  5346. End Proc[DESCRIZIONE$]
  5347. Procedure M0DEDIFICIO
  5348. Cls 
  5349. Print "Nome dell'edificio";EDIFICIO;">";NOMEE$(EDIFICIO)
  5350. Locate 0,ULTIMALINEA
  5351. Input "Nuovo nome dell'edificio"+Str$(EDIFICIO)+">";NOMEEDIFICIO$;
  5352. If NOMEEDIFICIO$<>"" Then NOMEE$(EDIFICIO)=NOMEEDIFICIO$
  5353. Cls 
  5354. Print "Posizione dell'edificio";EDIFICIO;">luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  5355. Locate 0,ULTIMALINEA
  5356. Input "Nuova posizione dell'edificio"+Str$(EDIFICIO)+" (0-"+Str$(NUMEROL)-" "+")>";NUOVAPOSIZIONEEDIFICIO$;
  5357. If NUOVAPOSIZIONEEDIFICIO$<>""
  5358.  NUOVAPOSIZIONEEDIFICIO=Val(NUOVAPOSIZIONEEDIFICIO$)
  5359.  Proc LIMITI[NUOVAPOSIZIONEEDIFICIO,0,NUMEROL] : NUOVAPOSIZIONEEDIFICIO=Param
  5360.  POSIZIONEE(EDIFICIO)=NUOVAPOSIZIONEEDIFICIO
  5361. End If 
  5362. Cls 
  5363. Print "Numero delle stanze dell'edificio";EDIFICIO;">";NUMEROS(EDIFICIO)+1
  5364. Locate 0,ULTIMALINEA
  5365. Input "Nuovo numero delle stanze dell'edificio"+Str$(EDIFICIO)+" (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  5366. If NUMEROSTANZE$<>""
  5367.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  5368.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROSTANZE=Param
  5369.  NUMEROS(EDIFICIO)=NUMEROSTANZE
  5370. End If 
  5371. Curs Off 
  5372. End Proc
  5373. Procedure M0DIFICA
  5374. M0DIFICA=True
  5375. Fade 5,$660
  5376. Cls 
  5377. Proc TIC["premi C per modificare una categoria degli oggetti",ULTIMALINEA-12]
  5378. Proc TIC["premi D per modificare una descrizione",ULTIMALINEA-11]
  5379. Proc TIC["premi E per modificare un'edificio",ULTIMALINEA-10]
  5380. Proc TIC["premi F per modificare lo scopo del gioco",ULTIMALINEA-9]
  5381. Proc TIC["premi L per modificare un luogo",ULTIMALINEA-8]
  5382. Proc TIC["premi M per creare una mappa dei luoghi/delle stanze",ULTIMALINEA-7]
  5383. Proc TIC["premi N per modificare un numero",ULTIMALINEA-6]
  5384. Proc TIC["premi O per modificare un oggetto",ULTIMALINEA-5]
  5385. Proc TIC["premi P per modificare un personaggio",ULTIMALINEA-4]
  5386. Proc TIC["premi R per modificare una regione",ULTIMALINEA-3]
  5387. Proc TIC["premi S per modificare una stanza",ULTIMALINEA-2]
  5388. Proc TIC["premi X per attivare/disattivare la musica",ULTIMALINEA-1]
  5389. Proc TIC["premi Z per attivare/disattivare i nemici",ULTIMALINEA]
  5390. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5391. If SCELTA$="c" Then Proc M0DIFICACATEGORIADEGLIOGGETTI
  5392. If SCELTA$="d" Then Proc M0DIFICADESCRIZIONE
  5393. If SCELTA$="e" Then Proc M0DIFICAEDIFICIO
  5394. If SCELTA$="f" Then Proc M0DIFICASCOPODELGIOCO
  5395. If SCELTA$="l" Then Proc M0DIFICALUOGO
  5396. If SCELTA$="m" Then Proc CREAMAPPA
  5397. If SCELTA$="n" Then Proc M0DIFICANUMERO
  5398. If SCELTA$="o" Then Proc M0DIFICAOGGETTO
  5399. If SCELTA$="p" Then Proc M0DIFICAPERSONAGGIO
  5400. If SCELTA$="r" Then Proc M0DIFICAREGIONE
  5401. If SCELTA$="s" Then Proc M0DIFICASTANZA
  5402. If SCELTA$="x"
  5403.  _MUSICA= Not _MUSICA
  5404.  If _MUSICA=True
  5405.   Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  5406.   If FILEREQUESTERMUSICA=True and Param$=""
  5407.    _MUSICA=False
  5408.   End If 
  5409.  Else 
  5410.   Track Loop Of : Track Stop 
  5411.  End If 
  5412. End If 
  5413. If SCELTA$="z" Then ANEMICI= Not ANEMICI
  5414. Fade 5,$60
  5415. M0DIFICA=False
  5416. End Proc
  5417. Procedure M0DIFICACATEGORIADEGLIOGGETTI
  5418. CATEGORIADEGLIOGGETTI=0
  5419. Repeat 
  5420.  Proc MOSTRACATEGORIADEGLIOGGETTI
  5421.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta categoria M modifica Esc esci",ULTIMALINEA]
  5422.  Repeat 
  5423.   TASTOPREMUTO$=Inkey$
  5424.  Until TASTOPREMUTO$<>""
  5425.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5426.  If TASTOPREMUTO$="m" Then Proc M0DCATEGORIADEGLIOGGETTI
  5427.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  5428.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  5429. Until TASTOPREMUTO$=Chr$(27)
  5430. CATEGORIADEGLIOGGETTI=0
  5431. End Proc
  5432. Procedure M0DIFICADESCRIZIONE
  5433. Shared SCELTA$
  5434. Cls 
  5435. Proc TIC["premi A per modificare il prologo",ULTIMALINEA-7]
  5436. Proc TIC["premi C per modificare la descrizione della categoria degli oggetti",ULTIMALINEA-6]
  5437. Proc TIC["premi E per modificare la descrizione dell'edificio",ULTIMALINEA-5]
  5438. Proc TIC["premi L per modificare la descrizione del luogo",ULTIMALINEA-4]
  5439. Proc TIC["premi P per modificare la descrizione del personaggio",ULTIMALINEA-3]
  5440. Proc TIC["premi S per modificare la descrizione della stanza",ULTIMALINEA-2]
  5441. Proc TIC["premi Z per modificare l'epilogo",ULTIMALINEA-1]
  5442. Proc TIC["quando sei nell'editor premi Esc per finire",ULTIMALINEA]
  5443. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5444. If SCELTA$="a" Then DESCRIZIONE$=PROLOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5445. If SCELTA$="c" Then DESCRIZIONE$=DESCRIZIONECO$(CATEGORIADEGLIOGGETTI) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5446. If SCELTA$="e" Then DESCRIZIONE$=DESCRIZIONEE$(EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5447. If SCELTA$="l" Then DESCRIZIONE$=DESCRIZIONEL$(LUOGO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5448. If SCELTA$="p" Then DESCRIZIONE$=DESCRIZIONEP$(PERSONAGGIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5449. If SCELTA$="s" Then DESCRIZIONE$=DESCRIZIONES$(STANZA,EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5450. If SCELTA$="z" Then DESCRIZIONE$=EPILOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5451.  
  5452. If SCELTA$="a" Then PROLOGO$=Param$
  5453. If SCELTA$="c" Then DESCRIZIONECO$(CATEGORIADEGLIOGGETTI)=Param$
  5454. If SCELTA$="e" Then DESCRIZIONEE$(EDIFICIO)=Param$
  5455. If SCELTA$="l" Then DESCRIZIONEL$(LUOGO)=Param$
  5456. If SCELTA$="p" Then DESCRIZIONEP$(PERSONAGGIO)=Param$
  5457. If SCELTA$="s" Then DESCRIZIONES$(STANZA,EDIFICIO)=Param$
  5458. If SCELTA$="z" Then EPILOGO$=Param$
  5459. End Proc
  5460. Procedure M0DIFICAEDIFICIO
  5461. If NUMEROE=-1 Then Pop Proc
  5462. EDIFICIO=0
  5463. Repeat 
  5464.  Proc MOSTRAEDIFICIO
  5465.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta edificio M modifica Esc esci",ULTIMALINEA]
  5466.  Repeat 
  5467.   TASTOPREMUTO$=Inkey$
  5468.  Until TASTOPREMUTO$<>""
  5469.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5470.  If TASTOPREMUTO$="m" Then Proc M0DEDIFICIO
  5471.  If TASTOPREMUTO$=Cup$ Then Add EDIFICIO,-1,0 To NUMEROE
  5472.  If TASTOPREMUTO$=Cdown$ Then Add EDIFICIO,1,0 To NUMEROE
  5473. Until TASTOPREMUTO$=Chr$(27)
  5474. LUOGO=0
  5475. End Proc
  5476. Procedure M0DIFICALUOGO
  5477. LUOGO=0
  5478. Repeat 
  5479.  Proc MOSTRALUOGO
  5480.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta luogo M modifica Esc esci",ULTIMALINEA]
  5481.  Repeat 
  5482.   TASTOPREMUTO$=Inkey$
  5483.  Until TASTOPREMUTO$<>""
  5484.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5485.  If TASTOPREMUTO$="m" Then Proc M0DLUOGO
  5486.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  5487.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  5488. Until TASTOPREMUTO$=Chr$(27)
  5489. LUOGO=0
  5490. End Proc
  5491. Procedure M0DIFICAOGGETTO
  5492. OGGETTO=0
  5493. Repeat 
  5494.  Proc MOSTRAOGGETTO
  5495.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto M modifica Esc esci",ULTIMALINEA]
  5496.  Repeat 
  5497.   TASTOPREMUTO$=Inkey$
  5498.  Until TASTOPREMUTO$<>""
  5499.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5500.  If TASTOPREMUTO$="m" Then Proc M0DOGGETTO
  5501.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  5502.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  5503. Until TASTOPREMUTO$=Chr$(27)
  5504. OGGETTO=0
  5505. End Proc
  5506. Procedure M0DIFICANUMERO
  5507. Cls 
  5508. Proc TIC["premi C per modificare il numero delle categorie degli oggetti",ULTIMALINEA-6]
  5509. Proc TIC["premi E per modificare il numero degli edifici",ULTIMALINEA-5]
  5510. Proc TIC["premi L per modificare il numero dei luoghi",ULTIMALINEA-4]
  5511. Proc TIC["premi O per modificare il numero degli oggetti",ULTIMALINEA-3]
  5512. Proc TIC["premi P per modificare il numero dei personaggi",ULTIMALINEA-2]
  5513. Proc TIC["premi R per modificare il numero delle regioni",ULTIMALINEA-1]
  5514. Proc TIC["premi S per modificare il numero delle stanze",ULTIMALINEA]
  5515. SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5516. If SCELTA$="c" Then Proc M0DNUMCO
  5517. If SCELTA$="e" Then Proc M0DNUME
  5518. If SCELTA$="l" Then Proc M0DNUML
  5519. If SCELTA$="o" Then Proc M0DNUMO
  5520. If SCELTA$="p" Then Proc M0DNUMP
  5521. If SCELTA$="r" Then Proc M0DNUMR
  5522. If SCELTA$="s" Then Proc M0DNUMS
  5523. End Proc
  5524. Procedure M0DIFICAPERSONAGGIO
  5525. PERSONAGGIO=0
  5526. Repeat 
  5527.  Proc MOSTRAPERSONAGGIO
  5528.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta personaggio M modifica Esc esci",ULTIMALINEA]
  5529.  Repeat 
  5530.   TASTOPREMUTO$=Inkey$
  5531.  Until TASTOPREMUTO$<>""
  5532.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5533.  If TASTOPREMUTO$="m" Then Proc M0DPERSONAGGIO
  5534.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  5535.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  5536. Until TASTOPREMUTO$=Chr$(27)
  5537. PERSONAGGIO=0
  5538. End Proc
  5539. Procedure M0DIFICAREGIONE
  5540. REGIONE=0
  5541. Repeat 
  5542.  Proc MOSTRAREGIONE
  5543.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta regione M modifica Esc esci",ULTIMALINEA]
  5544.  Repeat 
  5545.   TASTOPREMUTO$=Inkey$
  5546.  Until TASTOPREMUTO$<>""
  5547.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5548.  If TASTOPREMUTO$="m" Then Proc M0DREGIONE
  5549.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  5550.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  5551. Until TASTOPREMUTO$=Chr$(27)
  5552. REGIONE=0
  5553. End Proc
  5554. Procedure M0DIFICASCOPODELGIOCO
  5555. VECCHIOSCOPODELGIOCO=AZIONEP(7,0)
  5556. SCOPODELGIOCO=VECCHIOSCOPODELGIOCO
  5557. SCOPOMODIFICATO=-1
  5558. Repeat 
  5559.  Proc SCOPODELGIOCO[True]
  5560.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta scopo del gioco M modifica Esc esci",ULTIMALINEA]
  5561.  Repeat 
  5562.   TASTOPREMUTO$=Inkey$
  5563.  Until TASTOPREMUTO$<>""
  5564.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5565.  If TASTOPREMUTO$="m" Then Proc SCOPODELGIOCO[SCOPODELGIOCO] : SCOPOMODIFICATO=SCOPODELGIOCO
  5566.  If TASTOPREMUTO$=Cup$ Then Add SCOPODELGIOCO,-1,0 To 18
  5567.  If TASTOPREMUTO$=Cdown$ Then Add SCOPODELGIOCO,1,0 To 18
  5568.  AZIONEP(7,0)=SCOPODELGIOCO
  5569. Until TASTOPREMUTO$=Chr$(27)
  5570. If SCOPOMODIFICATO=-1
  5571.  AZIONEP(7,0)=VECCHIOSCOPODELGIOCO
  5572. Else 
  5573.  AZIONEP(7,0)=SCOPOMODIFICATO
  5574. End If 
  5575. FINEA(7,0)=False
  5576. End Proc
  5577. Procedure M0DIFICASTANZA
  5578. If NUMEROE=-1 Then Pop Proc
  5579. STANZA=0
  5580. Repeat 
  5581.  Proc MOSTRASTANZA
  5582.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta stanza M modifica Esc esci",ULTIMALINEA]
  5583.  Repeat 
  5584.   TASTOPREMUTO$=Inkey$
  5585.  Until TASTOPREMUTO$<>""
  5586.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5587.  If TASTOPREMUTO$="m" Then Proc M0DSTANZA
  5588.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  5589.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  5590. Until TASTOPREMUTO$=Chr$(27)
  5591. STANZA=0
  5592. End Proc
  5593. Procedure M0DLUOGO
  5594. Cls 
  5595. Print "Nome del luogo";LUOGO;">";NOMEL$(LUOGO)
  5596. Locate 0,ULTIMALINEA
  5597. Input "Nuovo nome del luogo"+Str$(LUOGO)+">";NOMELUOGO$;
  5598. If NOMELUOGO$<>"" Then NOMEL$(LUOGO)=NOMELUOGO$
  5599. DREZIONE=DREZIONEL(0,LUOGO)
  5600. Cls 
  5601. Print "Direzione Nord del luogo";LUOGO;">";
  5602. E=DREZIONE/$10000
  5603. If E>0
  5604.  S=DREZIONE mod $10000
  5605.  Print "edificio";E;" stanza";S
  5606. Else 
  5607.  If DREZIONE<$FFFF
  5608.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5609.  Else 
  5610.   Print " nessuno"
  5611.  End If 
  5612. End If 
  5613. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5614. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5615. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5616. If NUMEROLUOGO$<>""
  5617.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5618.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5619.   If NUMEROEDIFICIO$<>""
  5620.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5621.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5622.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5623.    If NUMEROSTANZA$<>""
  5624.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5625.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5626.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5627.    End If 
  5628.   End If 
  5629.  Else 
  5630.   If NUMEROLUOGO$="n"
  5631.    DREZIONE=$FFFF
  5632.   Else 
  5633.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5634.   End If 
  5635.  End If 
  5636.  DREZIONEL(0,LUOGO)=DREZIONE
  5637. End If 
  5638. DREZIONE=DREZIONEL(1,LUOGO)
  5639. Cls 
  5640. Print "Direzione NordEst del luogo";LUOGO;">";
  5641. E=DREZIONE/$10000
  5642. If E>0
  5643.  S=DREZIONE mod $10000
  5644.  Print "edificio";E;" stanza";S
  5645. Else 
  5646.  If DREZIONE<$FFFF
  5647.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5648.  Else 
  5649.   Print " nessuno"
  5650.  End If 
  5651. End If 
  5652. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5653. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5654. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5655. If NUMEROLUOGO$<>""
  5656.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5657.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5658.   If NUMEROEDIFICIO$<>""
  5659.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5660.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5661.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5662.    If NUMEROSTANZA$<>""
  5663.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5664.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5665.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5666.    End If 
  5667.   End If 
  5668.  Else 
  5669.   If NUMEROLUOGO$="n"
  5670.    DREZIONE=$FFFF
  5671.   Else 
  5672.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5673.   End If 
  5674.  End If 
  5675.  DREZIONEL(1,LUOGO)=DREZIONE
  5676. End If 
  5677. DREZIONE=DREZIONEL(2,LUOGO)
  5678. Cls 
  5679. Print "Direzione Est del luogo";LUOGO;">";
  5680. E=DREZIONE/$10000
  5681. If E>0
  5682.  S=DREZIONE mod $10000
  5683.  Print "edificio";E;" stanza";S
  5684. Else 
  5685.  If DREZIONE<$FFFF
  5686.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5687.  Else 
  5688.   Print " nessuno"
  5689.  End If 
  5690. End If 
  5691. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5692. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5693. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5694. If NUMEROLUOGO$<>""
  5695.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5696.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5697.   If NUMEROEDIFICIO$<>""
  5698.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5699.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5700.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5701.    If NUMEROSTANZA$<>""
  5702.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5703.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5704.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5705.    End If 
  5706.   End If 
  5707.  Else 
  5708.   If NUMEROLUOGO$="n"
  5709.    DREZIONE=$FFFF
  5710.   Else 
  5711.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5712.   End If 
  5713.  End If 
  5714.  DREZIONEL(2,LUOGO)=DREZIONE
  5715. End If 
  5716. DREZIONE=DREZIONEL(3,LUOGO)
  5717. Cls 
  5718. Print "Direzione SudEst del luogo";LUOGO;">";
  5719. E=DREZIONE/$10000
  5720. If E>0
  5721.  S=DREZIONE mod $10000
  5722.  Print "edificio";E;" stanza";S
  5723. Else 
  5724.  If DREZIONE<$FFFF
  5725.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5726.  Else 
  5727.   Print " nessuno"
  5728.  End If 
  5729. End If 
  5730. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5731. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5732. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5733. If NUMEROLUOGO$<>""
  5734.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5735.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5736.   If NUMEROEDIFICIO$<>""
  5737.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5738.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5739.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5740.    If NUMEROSTANZA$<>""
  5741.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5742.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5743.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5744.    End If 
  5745.   End If 
  5746.  Else 
  5747.   If NUMEROLUOGO$="n"
  5748.    DREZIONE=$FFFF
  5749.   Else 
  5750.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5751.   End If 
  5752.  End If 
  5753.  DREZIONEL(3,LUOGO)=DREZIONE
  5754. End If 
  5755. DREZIONE=DREZIONEL(4,LUOGO)
  5756. Cls 
  5757. Print "Direzione Sud del luogo";LUOGO;">";
  5758. E=DREZIONE/$10000
  5759. If E>0
  5760.  S=DREZIONE mod $10000
  5761.  Print "edificio";E;" stanza";S
  5762. Else 
  5763.  If DREZIONE<$FFFF
  5764.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5765.  Else 
  5766.   Print " nessuno"
  5767.  End If 
  5768. End If 
  5769. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5770. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5771. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5772. If NUMEROLUOGO$<>""
  5773.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5774.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5775.   If NUMEROEDIFICIO$<>""
  5776.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5777.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5778.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5779.    If NUMEROSTANZA$<>""
  5780.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5781.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5782.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5783.    End If 
  5784.   End If 
  5785.  Else 
  5786.   If NUMEROLUOGO$="n"
  5787.    DREZIONE=$FFFF
  5788.   Else 
  5789.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5790.   End If 
  5791.  End If 
  5792.  DREZIONEL(4,LUOGO)=DREZIONE
  5793. End If 
  5794. DREZIONE=DREZIONEL(5,LUOGO)
  5795. Cls 
  5796. Print "Direzione SudOvest del luogo";LUOGO;">";
  5797. E=DREZIONE/$10000
  5798. If E>0
  5799.  S=DREZIONE mod $10000
  5800.  Print "edificio";E;" stanza";S
  5801. Else 
  5802.  If DREZIONE<$FFFF
  5803.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5804.  Else 
  5805.   Print " nessuno"
  5806.  End If 
  5807. End If 
  5808. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5809. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5810. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5811. If NUMEROLUOGO$<>""
  5812.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5813.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5814.   If NUMEROEDIFICIO$<>""
  5815.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5816.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5817.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5818.    If NUMEROSTANZA$<>""
  5819.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5820.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5821.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5822.    End If 
  5823.   End If 
  5824.  Else 
  5825.   If NUMEROLUOGO$="n"
  5826.    DREZIONE=$FFFF
  5827.   Else 
  5828.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5829.   End If 
  5830.  End If 
  5831.  DREZIONEL(5,LUOGO)=DREZIONE
  5832. End If 
  5833. DREZIONE=DREZIONEL(6,LUOGO)
  5834. Cls 
  5835. Print "Direzione Ovest del luogo";LUOGO;">";
  5836. E=DREZIONE/$10000
  5837. If E>0
  5838.  S=DREZIONE mod $10000
  5839.  Print "edificio";E;" stanza";S
  5840. Else 
  5841.  If DREZIONE<$FFFF
  5842.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5843.  Else 
  5844.   Print " nessuno"
  5845.  End If 
  5846. End If 
  5847. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5848. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5849. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5850. If NUMEROLUOGO$<>""
  5851.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5852.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5853.   If NUMEROEDIFICIO$<>""
  5854.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5855.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5856.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5857.    If NUMEROSTANZA$<>""
  5858.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5859.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5860.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5861.    End If 
  5862.   End If 
  5863.  Else 
  5864.   If NUMEROLUOGO$="n"
  5865.    DREZIONE=$FFFF
  5866.   Else 
  5867.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5868.   End If 
  5869.  End If 
  5870.  DREZIONEL(6,LUOGO)=DREZIONE
  5871. End If 
  5872. DREZIONE=DREZIONEL(7,LUOGO)
  5873. Cls 
  5874. Print "Direzione NordOvest del luogo";LUOGO;">";
  5875. E=DREZIONE/$10000
  5876. If E>0
  5877.  S=DREZIONE mod $10000
  5878.  Print "edificio";E;" stanza";S
  5879. Else 
  5880.  If DREZIONE<$FFFF
  5881.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5882.  Else 
  5883.   Print " nessuno"
  5884.  End If 
  5885. End If 
  5886. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5887. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5888. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5889. If NUMEROLUOGO$<>""
  5890.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5891.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5892.   If NUMEROEDIFICIO$<>""
  5893.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5894.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5895.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5896.    If NUMEROSTANZA$<>""
  5897.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5898.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5899.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5900.    End If 
  5901.   End If 
  5902.  Else 
  5903.   If NUMEROLUOGO$="n"
  5904.    DREZIONE=$FFFF
  5905.   Else 
  5906.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5907.   End If 
  5908.  End If 
  5909.  DREZIONEL(7,LUOGO)=DREZIONE
  5910. End If 
  5911. DREZIONE=DREZIONEL(8,LUOGO)
  5912. Cls 
  5913. Print "Direzione Sopra del luogo";LUOGO;">";
  5914. E=DREZIONE/$10000
  5915. If E>0
  5916.  S=DREZIONE mod $10000
  5917.  Print "edificio";E;" stanza";S
  5918. Else 
  5919.  If DREZIONE<$FFFF
  5920.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5921.  Else 
  5922.   Print " nessuno"
  5923.  End If 
  5924. End If 
  5925. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5926. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5927. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5928. If NUMEROLUOGO$<>""
  5929.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5930.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5931.   If NUMEROEDIFICIO$<>""
  5932.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5933.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5934.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5935.    If NUMEROSTANZA$<>""
  5936.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5937.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5938.     If NUMEROSTANZA=0
  5939.      DREZIONE=NUMEROEDIFICIO*$10000
  5940.     Else 
  5941.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5942.     End If 
  5943.    End If 
  5944.   End If 
  5945.  Else 
  5946.   If NUMEROLUOGO$="n"
  5947.    DREZIONE=$FFFF
  5948.   Else 
  5949.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5950.   End If 
  5951.  End If 
  5952.  DREZIONEL(8,LUOGO)=DREZIONE
  5953. End If 
  5954. DREZIONE=DREZIONEL(9,LUOGO)
  5955. Cls 
  5956. Print "Direzione Sotto del luogo";LUOGO;">luogo";
  5957. E=DREZIONE/$10000
  5958. If E>0
  5959.  S=DREZIONE mod $10000
  5960.  Print "edificio";E;" stanza";S
  5961. Else 
  5962.  If DREZIONE<$FFFF
  5963.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5964.  Else 
  5965.   Print " nessuno"
  5966.  End If 
  5967. End If 
  5968. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5969. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5970. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5971. If NUMEROLUOGO$<>""
  5972.  If NUMEROLUOGO$="e" and NUMEROE>-1
  5973.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5974.   If NUMEROEDIFICIO$<>""
  5975.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5976.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5977.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5978.    If NUMEROSTANZA$<>""
  5979.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5980.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5981.     If NUMEROSTANZA=0
  5982.      DREZIONE=NUMEROEDIFICIO*$10000
  5983.     Else 
  5984.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5985.     End If 
  5986.    End If 
  5987.   End If 
  5988.  Else 
  5989.   If NUMEROLUOGO$="n"
  5990.    DREZIONE=$FFFF
  5991.   Else 
  5992.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5993.   End If 
  5994.  End If 
  5995.  DREZIONEL(9,LUOGO)=DREZIONE
  5996. End If 
  5997. Cls 
  5998. Print "Soldi nel luogo";LUOGO;">";Str$(SOLDIL(LUOGO))-" ";" ";
  5999. If SOLDIL(LUOGO)=1 Then Print "soldo" Else Print "soldi"
  6000. Locate 0,ULTIMALINEA
  6001. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLUOGO$;
  6002. If SOLDINELLUOGO$<>""
  6003.  SOLDINELLUOGO=Val(SOLDINELLUOGO$)
  6004.  Proc LIMITI[SOLDINELLUOGO,0,65535] : SOLDIL(LUOGO)=Param
  6005. End If 
  6006. Curs Off 
  6007. TIPOLUOGO=TIPOL(LUOGO)
  6008. Repeat 
  6009.  Cls 
  6010.  Print "Tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOL(LUOGO))
  6011.  Print At(0,ULTIMALINEA-1);"Nuovo tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOLUOGO)
  6012.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo di luogo Spazio conferma",ULTIMALINEA]
  6013.  Repeat 
  6014.   TASTOPREMUTO$=Inkey$
  6015.  Until TASTOPREMUTO$<>""
  6016.  If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  6017.  If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  6018. Until TASTOPREMUTO$=" "
  6019. TIPOL(LUOGO)=TIPOLUOGO
  6020. End Proc
  6021. Procedure M0DNUMCO
  6022. Cls 
  6023. Print "Numero delle categorie degli oggetti>";Str$(NUMEROCO+1)-" "
  6024. Locate 0,ULTIMALINEA : Input "Nuovo numero delle categorie degli oggetti (1-"+Str$(NUMMASCO+1)-" "+")>";NUMEROCATEGORIEDEGLIOGGETTI$;
  6025. If NUMEROCATEGORIEDEGLIOGGETTI$<>""
  6026.  NUMEROCATEGORIEDEGLIOGGETTI=Val(NUMEROCATEGORIEDEGLIOGGETTI$)
  6027.  Dec NUMEROCATEGORIEDEGLIOGGETTI
  6028.  Proc LIMITI[NUMEROCATEGORIEDEGLIOGGETTI,0,NUMMASCO] : NUMEROCO=Param
  6029. End If 
  6030. Curs Off 
  6031. End Proc
  6032. Procedure M0DNUME
  6033. Cls 
  6034. Print "Numero degli edifici>";Str$(NUMEROE+1)-" "
  6035. Locate 0,ULTIMALINEA : Input "Nuovo numero degli edifici (0-"+Str$(NUMMASE+1)-" "+")>";NUMEROEDIFICI$;
  6036. If NUMEROEDIFICI$<>""
  6037.  NUMEROEDIFICI=Val(NUMEROEDIFICI$) : Dec NUMEROEDIFICI
  6038.  Proc LIMITI[NUMEROEDIFICI,-1,NUMMASE] : NUMEROE=Param
  6039.  If NUMEROE=-1
  6040.   EDIFICIO=NUMEROE
  6041.  End If 
  6042. End If 
  6043. Curs Off 
  6044. End Proc
  6045. Procedure M0DNUML
  6046. Cls 
  6047. Print "Numero dei luoghi>";Str$(NUMEROL+1)-" "
  6048. Locate 0,ULTIMALINEA : Input "Nuovo numero dei luoghi (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROLUOGHI$;
  6049. If NUMEROLUOGHI$<>""
  6050.  NUMEROLUOGHI=Val(NUMEROLUOGHI$) : Dec NUMEROLUOGHI
  6051.  Proc LIMITI[NUMEROLUOGHI,0,NUMMASL] : NUMEROL=Param
  6052. End If 
  6053. Curs Off 
  6054. End Proc
  6055. Procedure M0DNUMO
  6056. Cls 
  6057. Print "Numero degli oggetti>";Str$(NUMEROO+1)-" "
  6058. Locate 0,ULTIMALINEA : Input "Nuovo numero degli oggetti (1-"+Str$(NUMMASO+1)-" "+")>";NUMEROOGGETTI$;
  6059. If NUMEROOGGETTI$<>""
  6060.  NUMEROOGGETTI=Val(NUMEROOGGETTI$) : Dec NUMEROOGGETTI
  6061.  Proc LIMITI[NUMEROOGGETTI,0,NUMMASO] : NUMEROO=Param
  6062. End If 
  6063. Curs Off 
  6064. End Proc
  6065. Procedure M0DNUMP
  6066. Cls 
  6067. Print "Numero dei personaggi>";Str$(NUMEROP+1)-" "
  6068. Locate 0,ULTIMALINEA : Input "Nuovo numero dei personaggi (1-"+Str$(NUMMASP+1)-" "+")>";NUMEROPERSONAGGI$;
  6069. If NUMEROPERSONAGGI$<>""
  6070.  NUMEROPERSONAGGI=Val(NUMEROPERSONAGGI$) : Dec NUMEROPERSONAGGI
  6071.  Proc LIMITI[NUMEROPERSONAGGI,0,NUMMASL] : NUMEROP=Param
  6072. End If 
  6073. Curs Off 
  6074. End Proc
  6075. Procedure M0DNUMR
  6076. Cls 
  6077. Print "Numero delle regioni>";Str$(NUMEROR+1)-" "
  6078. Locate 0,ULTIMALINEA : Input "Nuovo numero delle regioni (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROREGIONI$;
  6079. If NUMEROREGIONI$<>""
  6080.  NUMEROREGIONI=Val(NUMEROREGIONI$) : Dec NUMEROREGIONI
  6081.  Proc LIMITI[NUMEROREGIONI,0,NUMMASL] : NUMEROR=Param
  6082. End If 
  6083. Curs Off 
  6084. End Proc
  6085. Procedure M0DNUMS
  6086. Cls 
  6087. Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  6088. Locate 0,ULTIMALINEA : Input "Nuovo numero delle stanze (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  6089. If NUMEROSTANZE$<>""
  6090.  NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  6091.  Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROS(EDIFICIO)=Param
  6092. End If 
  6093. Curs Off 
  6094. End Proc
  6095. Procedure M0DOGGETTO
  6096. CO=CATEGORIAO(OGGETTO)
  6097. Repeat 
  6098.  Cls 
  6099.  Print "Nome dell'oggetto";OGGETTO;">";
  6100.  If Btst(1,TIPOO(OGGETTO))=True
  6101.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6102.  Else 
  6103.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6104.  End If 
  6105.  Print At(0,ULTIMALINEA-1);"Nuovo nome dell'oggetto";OGGETTO;">";
  6106.  If Btst(1,TIPOO(OGGETTO))=True
  6107.   Print NOMESRO$(CO);
  6108.  Else 
  6109.   Print NOMESCO$(CO);
  6110.  End If 
  6111.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo nome Spazio conferma",ULTIMALINEA]
  6112.  Repeat 
  6113.   TASTOPREMUTO$=Inkey$
  6114.  Until TASTOPREMUTO$<>""
  6115.  If TASTOPREMUTO$=Cup$ Then Add CO,-1,0 To NUMEROCO
  6116.  If TASTOPREMUTO$=Cdown$ Then Add CO,1,0 To NUMEROCO
  6117. Until TASTOPREMUTO$=" "
  6118. CATEGORIAO(OGGETTO)=CO
  6119. Cls 
  6120. Print "Nome dell'oggetto";OGGETTO;">";
  6121. If Btst(1,TIPOO(OGGETTO))=True
  6122.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  6123. Else 
  6124.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  6125. End If 
  6126. Print "Posizione dell'oggetto";OGGETTO;">";
  6127. If POSIZIONEO(OGGETTO)<0
  6128.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  6129.  If Btst(0,TIPOO(OGGETTO))=True
  6130.   Print "posseduto dal personaggio";SOGGETTO;
  6131.   Print " nome>";NOMEP$(SOGGETTO)
  6132.   If POSIZIONEO(OGGETTO)=-1
  6133.    POSSEDUTODALPERSONAGGIO0=True
  6134.   End If 
  6135.  Else 
  6136.   Print "contenuto nell'oggetto";SOGGETTO;
  6137.   Print " nome>";NOMESCO$(CATEGORIAO(SOGGETTO))
  6138.  End If 
  6139. Else 
  6140.  E=POSIZIONEO(OGGETTO)/$10000
  6141.  If E>0
  6142.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6143.   S=POSIZIONEO(OGGETTO) mod $10000
  6144.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6145.  Else 
  6146.   Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  6147.  End If 
  6148. End If 
  6149. Print At(0,ULTIMALINEA-1);"Luogo dell'oggetto (0-";
  6150. Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6151. Locate 0,ULTIMALINEA : Input "Nuovo luogo dell'oggetto>";NUMEROLUOGO$;
  6152. If NUMEROLUOGO$<>""
  6153.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6154.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6155.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6156.   If NUMEROEDIFICIO$<>""
  6157.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6158.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6159.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6160.    If NUMEROSTANZA$<>""
  6161.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6162.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6163.     POSIZIONEO(OGGETTO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6164.    End If 
  6165.   End If 
  6166.  Else If NUMEROLUOGO$="o"
  6167.   Print At(0,ULTIMALINEA-1);"Oggetto che contiene l'oggetto";OGGETTO;
  6168.   Print " (0-";Str$(NUMEROO)-" ";")             ";
  6169.   Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6170.   If NUMEROOGGETTO$<>""
  6171.    NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6172.    Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6173.    If NUMEROOGGETTO=OGGETTO
  6174.     Curs Off 
  6175.     Print At(0,ULTIMALINEA);"L'oggetto non pu� contenere s� stesso";
  6176.     Proc _ASPETTA
  6177.    Else 
  6178.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6179.      POSIZIONEO(OGGETTO)= Not NUMEROOGGETTO : Bclr 0,TIPOO(OGGETTO)
  6180.     Else 
  6181.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6182.      Proc _ASPETTA
  6183.     End If 
  6184.    End If 
  6185.   End If 
  6186.  Else If NUMEROLUOGO$="p"
  6187.   Locate 0,ULTIMALINEA-1 : Cline : Print "Personaggio che possiede l'oggetto (0-";
  6188.   Print Str$(NUMEROP)-" ";")"
  6189.   Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6190.   If NUMEROPERSONAGGIO$<>""
  6191.    NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6192.    Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6193.    POSIZIONEO(OGGETTO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOO(OGGETTO)
  6194.    If Btst(1,TIPOO(OGGETTO))=True
  6195.     Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(OGGETTO))
  6196.    Else 
  6197.     Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(OGGETTO))
  6198.    End If 
  6199.    If NUMEROPERSONAGGIO=0
  6200.     If Btst(1,TIPOO(OGGETTO))=True
  6201.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6202.     Else 
  6203.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6204.     End If 
  6205.    End If 
  6206.    If Btst(1,TIPOCO(CATEGORIAO(OGGETTO)))=True
  6207.     For A=0 To NUMEROO
  6208.      If POSIZIONEO(A)=-1-OGGETTO and Btst(0,TIPOO(A))=False
  6209.       If Btst(1,TIPOO(A))=True
  6210.        Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(A))
  6211.       Else 
  6212.        Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(A))
  6213.       End If 
  6214.      End If 
  6215.     Next A
  6216.     For A=0 To NUMEROP
  6217.      If POSIZIONEP(A)=-1-OGGETTO and Btst(0,TIPOP(A))=False
  6218.       Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(A)
  6219.       Add PESONETTOP(NUMEROPERSONAGGIO),PESONETTOP(A)
  6220.      End If 
  6221.     Next A
  6222.    End If 
  6223.   End If 
  6224.  Else 
  6225.   NUMEROLUOGO=Val(NUMEROLUOGO$)
  6226.   Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEO(OGGETTO)=Param
  6227.  End If 
  6228.  If POSSEDUTODALPERSONAGGIO0=True
  6229.   If Btst(1,TIPOO(OGGETTO))=True
  6230.    Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6231.   Else 
  6232.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6233.   End If 
  6234.  End If 
  6235. End If 
  6236. Curs Off 
  6237. If POSIZIONEO(OGGETTO)>0 or Btst(0,TIPOO(OGGETTO))=False or Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=False or Btst(2,TIPOO(OGGETTO))=False
  6238.  Cls 
  6239.  Print "Nome dell'oggetto";OGGETTO;">";
  6240.  If Btst(1,TIPOO(OGGETTO))=True
  6241.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6242.  Else 
  6243.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6244.  End If 
  6245.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto sia un resto di oggetto (s/n) ?>";
  6246.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6247.  If RISPOSTA$="s"
  6248.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6249.    If Btst(1,TIPOO(OGGETTO))=False
  6250.     Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6251.     Inc RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6252.    End If 
  6253.   End If 
  6254.   Bset 1,TIPOO(OGGETTO)
  6255.  Else 
  6256.   If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6257.    If Btst(1,TIPOO(OGGETTO))=True
  6258.     Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6259.     Dec RESTIDELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6260.    End If 
  6261.   End If 
  6262.   Bclr 1,TIPOO(OGGETTO)
  6263.  End If 
  6264. End If 
  6265. If POSIZIONEO(OGGETTO)<0 and Btst(0,TIPOO(OGGETTO))=True and Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=True and Btst(1,TIPOO(OGGETTO))=False
  6266.  Cls 
  6267.  Print "Nome dell'oggetto";OGGETTO;">";NOMESCO$(CATEGORIAO(OGGETTO))
  6268.  Print At(0,ULTIMALINEA);"Vuoi che l'oggetto difensivo sia indossato (s/n) ?>";
  6269.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6270.  If RISPOSTA$="s"
  6271.   Bset 2,TIPOO(OGGETTO)
  6272.  Else 
  6273.   Bclr 2,TIPOO(OGGETTO)
  6274.  End If 
  6275. End If 
  6276. Locate 0,ULTIMALINEA : Cline 
  6277. Print "Vuoi che l'oggetto sia nascosto (s/n) ?>";
  6278. RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6279. If RISPOSTA$="s"
  6280.  Bset 3,TIPOO(OGGETTO)
  6281. Else 
  6282.  Bclr 3,TIPOO(OGGETTO)
  6283. End If 
  6284. End Proc
  6285. Procedure M0DPERSONAGGIO
  6286. Cls 
  6287. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6288. Locate 0,ULTIMALINEA : Input "Nuovo nome del personaggio"+Str$(PERSONAGGIO)+">";NOMEPERSONAGGIO$;
  6289. If NOMEPERSONAGGIO$<>"" Then NOMEP$(PERSONAGGIO)=NOMEPERSONAGGIO$
  6290. Cls 
  6291. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6292. Print "Posizione del personaggio";PERSONAGGIO;">";
  6293. If POSIZIONEP(PERSONAGGIO)<0
  6294.  SOGGETTO= Not POSIZIONEP(PERSONAGGIO)
  6295.  If Btst(0,TIPOP(PERSONAGGIO))=True
  6296.   Print "trasportato dal personaggio";SOGGETTO;
  6297.   Print " di nome ";NOMEP$(SOGGETTO)
  6298.  Else 
  6299.   Print "contenuto nell'oggetto";SOGGETTO;
  6300.   Print " di nome ";NOMESCO$(CATEGORIAO(SOGGETTO))
  6301.  End If 
  6302. Else 
  6303.  E=POSIZIONEP(PERSONAGGIO)/$10000
  6304.  If E>0
  6305.   Print "Edificio";E;" nome>";NOMEE$(E-1)
  6306.   S=POSIZIONEP(PERSONAGGIO) mod $10000
  6307.   Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6308.  Else 
  6309.   Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  6310.  End If 
  6311. End If 
  6312. If PERSONAGGIO=0
  6313.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";Str$(NUMEROL)-" ";" E=Edificio)";
  6314.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6315.  If NUMEROLUOGO$<>""
  6316.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6317.    Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  6318.    If NUMEROEDIFICIO$<>""
  6319.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6320.     Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  6321.     Locate 0,ULTIMALINEA : Input "Quale stanza (0-"+Str$(NUMEROS(NUMEROEDIFICIO))-" "+") ?>";NUMEROSTANZA$;
  6322.     If NUMEROSTANZA$<>""
  6323.      NUMEROSTANZA=Val(NUMEROSTANZA$)
  6324.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6325.      POSIZIONEP(PERSONAGGIO)=(NUMEROEDIFICIO+1)*$10000+NUMEROSTANZA
  6326.     End If 
  6327.    End If 
  6328.   Else 
  6329.    NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6330.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6331.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6332.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6333.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6334.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6335.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6336.   End If 
  6337.  End If 
  6338. Else 
  6339.  Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";
  6340.  Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6341.  Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6342.  If NUMEROLUOGO$<>""
  6343.   NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6344.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6345.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6346.    If NUMEROEDIFICIO$<>""
  6347.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6348.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6349.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6350.     If NUMEROSTANZA$<>""
  6351.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6352.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6353.      POSIZIONEP(PERSONAGGIO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6354.     End If 
  6355.    End If 
  6356.   Else If NUMEROLUOGO$="o"
  6357.    Print At(0,ULTIMALINEA-1);"Oggetto che contiene il personaggio (0-";
  6358.    Print Str$(NUMEROO)-" ";")             ";
  6359.    Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6360.    If NUMEROOGGETTO$<>""
  6361.     NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6362.     Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6363.     If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6364.      POSIZIONEP(PERSONAGGIO)= Not NUMEROOGGETTO : Bclr 0,TIPOP(PERSONAGGIO)
  6365.     Else 
  6366.      Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6367.      Proc _ASPETTA
  6368.     End If 
  6369.    End If 
  6370.   Else If NUMEROLUOGO$="p"
  6371.    Print At(0,ULTIMALINEA-1);"Personaggio che trasporta il personaggio";PERSONAGGIO;
  6372.    Print " (0-";Str$(NUMEROP)-" ";")    ";
  6373.    Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6374.    If NUMEROPERSONAGGIO$<>""
  6375.     NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6376.     Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6377.     If NUMEROPERSONAGGIO=PERSONAGGIO
  6378.      Curs Off 
  6379.      Print At(0,ULTIMALINEA);"Il personaggio non pu� trasportare s� stesso";
  6380.      Proc _ASPETTA
  6381.     Else 
  6382.      POSIZIONEP(PERSONAGGIO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOP(PERSONAGGIO)
  6383.      Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(PERSONAGGIO)*1000
  6384.     End If 
  6385.    End If 
  6386.   Else 
  6387.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6388.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6389.    LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6390.    TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6391.    DREZIONEPRESAP(PERSONAGGIO)=-1
  6392.    DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6393.   End If 
  6394.  End If 
  6395. End If 
  6396. Curs Off 
  6397. Cls 
  6398. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6399. Print "Costituzione del personaggio";PERSONAGGIO;">";
  6400. Print Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  6401. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6402. Locate 0,ULTIMALINEA
  6403. Input "Nuova costituzione del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";C0STITUZIONEPERSONAGGIO$;
  6404. If C0STITUZIONEPERSONAGGIO$<>""
  6405.  C0STITUZIONEPERSONAGGIO=Val(C0STITUZIONEPERSONAGGIO$)
  6406.  LIMITI[C0STITUZIONEPERSONAGGIO,1,65536]
  6407.  C0STITUZIONEP(PERSONAGGIO)=Param
  6408. End If 
  6409. Cls 
  6410. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6411. Print "Forza del personaggio";PERSONAGGIO;">";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  6412. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6413. Locate 0,ULTIMALINEA
  6414. Input "Nuova forza del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";F0RZAPERSONAGGIO$;
  6415. If F0RZAPERSONAGGIO$<>""
  6416.  F0RZAPERSONAGGIO=Val(F0RZAPERSONAGGIO$)
  6417.  LIMITI[F0RZAPERSONAGGIO,1,65536] : F0RZAP(PERSONAGGIO)=Param
  6418. End If 
  6419. Cls 
  6420. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6421. Print "Peso del personaggio";PERSONAGGIO;">";Str$(PESOP(PERSONAGGIO))-" ";" ";
  6422. If PESOP(PERSONAGGIO)=1 Then Print "chilo" Else Print "chili"
  6423. Locate 0,ULTIMALINEA
  6424. Input "Nuovo peso del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";PESOPERSONAGGIO$;
  6425. If PESOPERSONAGGIO$<>""
  6426.  PESOPERSONAGGIO=Val(PESOPERSONAGGIO$) : PESOPRECEDENTE=PESOP(PERSONAGGIO)
  6427.  LIMITI[PESOPERSONAGGIO,1,65536] : PESOP(PERSONAGGIO)=Param
  6428.  For A=0 To NUMEROP
  6429.   If POSIZIONEP(PERSONAGGIO)=-1-A and Btst(0,TIPOP(PERSONAGGIO))=True
  6430.    Add PESONETTOP(A),-PESOPRECEDENTE*1000
  6431.    Add PESONETTOP(A),PESOP(PERSONAGGIO)*1000
  6432.   End If 
  6433.  Next A
  6434. End If 
  6435. Cls 
  6436. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6437. Print "Resistenza del personaggio";PERSONAGGIO;">";
  6438. Print Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  6439. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6440. Locate 0,ULTIMALINEA
  6441. Input "Nuova resistenza del personaggio"+Str$(PERSONAGGIO)+" (0-"+Str$(C0STITUZIONEP(PERSONAGGIO))-" "+")>";RESISTENZAPERSONAGGIO$;
  6442. If RESISTENZAPERSONAGGIO$<>""
  6443.  RESISTENZAPERSONAGGIO=Val(RESISTENZAPERSONAGGIO$)
  6444.  LIMITI[RESISTENZAPERSONAGGIO,0,C0STITUZIONEP(PERSONAGGIO)]
  6445.  RESISTENZAP(PERSONAGGIO)=Param
  6446.  If RESISTENZAP(PERSONAGGIO)=0
  6447.   For A=0 To NUMEROO
  6448.    If POSIZIONEO(A)=-1-PERSONAGGIO and Btst(0,TIPOO(A))=True
  6449.    POSIZIONEO(A)=POSIZIONEP(PERSONAGGIO)
  6450.     If Btst(1,TIPOO(A))=True
  6451.      Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(A))
  6452.     Else 
  6453.      Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(A))
  6454.     End If 
  6455.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  6456.      For B=0 To NUMEROO
  6457.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  6458.        If Btst(1,TIPOO(B))=True
  6459.         Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(B))
  6460.        Else 
  6461.         Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(B))
  6462.        End If 
  6463.       End If 
  6464.      Next B
  6465.      For B=1 To NUMEROP
  6466.       If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  6467.        Add PESONETTOP(PERSONAGGIO),-PESOP(B)*1000
  6468.        Add PESONETTOP(PERSONAGGIO),-PESONETTOP(B)
  6469.       End If 
  6470.      Next B
  6471.     End If 
  6472.    End If 
  6473.   Next A
  6474.   Add SOLDIL(POSIZIONEP(PERSONAGGIO)),SOLDIP(PERSONAGGIO)
  6475.   Add PESONETTOP(PERSONAGGIO),-SOLDIP(PERSONAGGIO)*PESOS
  6476.   SOLDIP(PERSONAGGIO)=0
  6477.  End If 
  6478. End If 
  6479. Cls 
  6480. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6481. Print "Sesso del personaggio";PERSONAGGIO;">";
  6482. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  6483. Locate 0,ULTIMALINEA
  6484. Input "Nuovo sesso del personaggio"+Str$(PERSONAGGIO)+" (M=maschile F=femminile)>";SESSOPERSONAGGIO$;
  6485. SESSOPERSONAGGIO$=Lower$(Left$(SESSOPERSONAGGIO$,1))
  6486. If SESSOPERSONAGGIO$<>""
  6487.  If SESSOPERSONAGGIO$="f"
  6488.   Bset 1,TIPOP(PERSONAGGIO)
  6489.  End If 
  6490.  If SESSOPERSONAGGIO$="m"
  6491.   Bclr 1,TIPOP(PERSONAGGIO)
  6492.  End If 
  6493. End If 
  6494. If PERSONAGGIO>0
  6495.  Cls 
  6496.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6497.  Print "Condizione del personaggio";PERSONAGGIO;">";
  6498.  If Btst(3,TIPOP(PERSONAGGIO))=True
  6499.   Print "Nemic";
  6500.  Else 
  6501.   Print "Amic";
  6502.  End If 
  6503.  If Btst(1,TIPOP(PERSONAGGIO))=True
  6504.   Print "a"
  6505.  Else 
  6506.   Print "o"
  6507.  End If 
  6508.  Locate 0,ULTIMALINEA
  6509.  Input "Nuova condizione del personaggio"+Str$(PERSONAGGIO)+" (A=amico/a N=nemico/a)>";CONDIZIONEPERSONAGGIO$;
  6510.  CONDIZIONEPERSONAGGIO$=Lower$(Left$(CONDIZIONEPERSONAGGIO$,1))
  6511.  If CONDIZIONEPERSONAGGIO$<>""
  6512.   If CONDIZIONEPERSONAGGIO$="n"
  6513.    Bset 3,TIPOP(PERSONAGGIO)
  6514.   End If 
  6515.   If CONDIZIONEPERSONAGGIO$="a"
  6516.    Bclr 3,TIPOP(PERSONAGGIO)
  6517.   End If 
  6518.  End If 
  6519. End If 
  6520. SOLDIPRECEDENTI=SOLDIP(PERSONAGGIO)
  6521. Cls 
  6522. Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6523. Print "Soldi del personaggio";PERSONAGGIO;">";Str$(SOLDIPRECEDENTI)-" ";" ";
  6524. If SOLDIPRECEDENTI=1 Then Print "soldo" Else Print "soldi"
  6525. Locate 0,ULTIMALINEA
  6526. Input "Nuovi soldi del personaggio"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDIPERSONAGGIO$;
  6527. If SOLDIPERSONAGGIO$<>""
  6528.  SOLDIPERSONAGGIO=Val(SOLDIPERSONAGGIO$)
  6529.  Proc LIMITI[SOLDIPERSONAGGIO,0,65535] : SOLDIP(PERSONAGGIO)=Param
  6530.  If SOLDIPERSONAGGIO>0
  6531.   Add PESONETTOP(PERSONAGGIO),-SOLDIPRECEDENTI*PESOS
  6532.   Add PESONETTOP(PERSONAGGIO),SOLDIPERSONAGGIO*PESOS
  6533.  End If 
  6534. End If 
  6535. If PERSONAGGIO>0
  6536.  Cls 
  6537.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6538.  Print "Inizio sonno del personaggio>";PERSONAGGIO;">";
  6539.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  6540.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  6541.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  6542.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  6543.  Locate 0,ULTIMALINEA
  6544.  Input "Ore del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-23)>";INIZIOSONNOPERSONAGGIO$;
  6545.  If INIZIOSONNOPERSONAGGIO$<>""
  6546.   INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6547.   Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,23] : INIZIOSONNOP(PERSONAGGIO)=Param*60
  6548.   Locate 0,ULTIMALINEA
  6549.   Input "Minuti del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-59)>";INIZIOSONNOPERSONAGGIO$;
  6550.   If INIZIOSONNOPERSONAGGIO$<>""
  6551.    INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6552.    Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,59] : Add INIZIOSONNOP(PERSONAGGIO),Param
  6553.   End If 
  6554.  End If 
  6555.  Curs Off 
  6556.  For A=0 To 7
  6557.   Cls 
  6558.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6559.   AZIONE=AZIONEP(A,PERSONAGGIO)
  6560.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  6561.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  6562.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  6563.   Print "Azione";A+1;">";
  6564.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6565.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuova azione Spazio conferma",ULTIMALINEA]
  6566.   Repeat 
  6567.    Print At(0,ULTIMALINEA-2); : Cline : Print : Cline : Cmove ,-1
  6568.    Print "azione";A+1;">";
  6569.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6570.    Repeat 
  6571.     TASTOPREMUTO$=Inkey$
  6572.    Until TASTOPREMUTO$<>""
  6573.    If TASTOPREMUTO$=Cup$
  6574.     Add AZIONE,-1,1 To 41
  6575.    End If 
  6576.    If TASTOPREMUTO$=Cdown$
  6577.     Add AZIONE,1,1 To 41
  6578.    End If 
  6579.   Until TASTOPREMUTO$=" "
  6580.   AZIONEP(A,PERSONAGGIO)=AZIONE
  6581.   Proc TIC["Vuoi modificare i parametri dell'azione (s/n) ?",ULTIMALINEA]
  6582.   RISPOSTA$=Input$(1)
  6583.   If RISPOSTA$="s"
  6584.    Proc INSERISCIPARAMETRIAZIONE[AZIONE,A,PERSONAGGIO]
  6585.    Curs Off 
  6586.   End If 
  6587.  Next A
  6588. End If 
  6589. Curs Off 
  6590. End Proc
  6591. Procedure M0DREGIONE
  6592. Cls 
  6593. Print "Nome della regione";REGIONE;">";NOMER$(REGIONE)
  6594. Locate 0,ULTIMALINEA : Input "Nuovo nome della regione"+Str$(REGIONE)+">";NOMEREGIONE$;
  6595. If NOMEREGIONE$<>"" Then NOMER$(REGIONE)=NOMEREGIONE$
  6596. Curs Off 
  6597. End Proc
  6598. Procedure M0DSTANZA
  6599. Cls 
  6600. Print "Nome della stanza";STANZA;">";NOMES$(STANZA,EDIFICIO)
  6601. Locate 0,ULTIMALINEA
  6602. Input "Nuovo nome della stanza"+Str$(LUOGO)+">";NOMESTANZA$;
  6603. If NOMESTANZA$<>"" Then NOMES$(STANZA,EDIFICIO)=NOMESTANZA$
  6604. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  6605. Cls 
  6606. Print "Direzione Nord della stanza";STANZA;">";
  6607. E=DREZIONE/$10000
  6608. If E>0
  6609.  S=DREZIONE mod $10000
  6610.  Print "edificio";E;" stanza";S
  6611. Else 
  6612.  If DREZIONE<$FFFF
  6613.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6614.  Else 
  6615.   Print " nessuno"
  6616.  End If 
  6617. End If 
  6618. Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6619. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6620. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6621. If NUMEROLUOGO$<>""
  6622.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6623.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6624.   If NUMEROEDIFICIO$<>""
  6625.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6626.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6627.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6628.    If NUMEROSTANZA$<>""
  6629.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6630.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6631.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6632.    End If 
  6633.   End If 
  6634.  Else 
  6635.   If NUMEROLUOGO$="n"
  6636.    DREZIONE=$FFFF
  6637.   Else 
  6638.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6639.   End If 
  6640.  End If 
  6641.  DREZIONES(0,STANZA,EDIFICIO)=DREZIONE
  6642. End If 
  6643. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  6644. Cls 
  6645. Print "Direzione NordEst della stanza";STANZA;">";
  6646. E=DREZIONE/$10000
  6647. If E>0
  6648.  S=DREZIONE mod $10000
  6649.  Print "edificio";E;" stanza";S
  6650. Else 
  6651.  If DREZIONE<$FFFF
  6652.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6653.  Else 
  6654.   Print " nessuno"
  6655.  End If 
  6656. End If 
  6657. Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6658. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6659. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6660. If NUMEROLUOGO$<>""
  6661.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6662.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6663.   If NUMEROEDIFICIO$<>""
  6664.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6665.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6666.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6667.    If NUMEROSTANZA$<>""
  6668.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6669.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6670.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6671.    End If 
  6672.   End If 
  6673.  Else 
  6674.   If NUMEROLUOGO$="n"
  6675.    DREZIONE=$FFFF
  6676.   Else 
  6677.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6678.   End If 
  6679.  End If 
  6680.  DREZIONES(1,STANZA,EDIFICIO)=DREZIONE
  6681. End If 
  6682. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  6683. Cls 
  6684. Print "Direzione Est della stanza";STANZA;">";
  6685. E=DREZIONE/$10000
  6686. If E>0
  6687.  S=DREZIONE mod $10000
  6688.  Print "edificio";E;" stanza";S
  6689. Else 
  6690.  If DREZIONE<$FFFF
  6691.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6692.  Else 
  6693.   Print " nessuno"
  6694.  End If 
  6695. End If 
  6696. Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6697. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6698. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6699. If NUMEROLUOGO$<>""
  6700.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6701.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6702.   If NUMEROEDIFICIO$<>""
  6703.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6704.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6705.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6706.    If NUMEROSTANZA$<>""
  6707.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6708.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6709.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6710.    End If 
  6711.   End If 
  6712.  Else 
  6713.   If NUMEROLUOGO$="n"
  6714.    DREZIONE=$FFFF
  6715.   Else 
  6716.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6717.   End If 
  6718.  End If 
  6719.  DREZIONES(2,STANZA,EDIFICIO)=DREZIONE
  6720. End If 
  6721. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  6722. Cls 
  6723. Print "Direzione SudEst della stanza";STANZA;">";
  6724. E=DREZIONE/$10000
  6725. If E>0
  6726.  S=DREZIONE mod $10000
  6727.  Print "edificio";E;" stanza";S
  6728. Else 
  6729.  If DREZIONE<$FFFF
  6730.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6731.  Else 
  6732.   Print " nessuno"
  6733.  End If 
  6734. End If 
  6735. Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6736. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6737. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6738. If NUMEROLUOGO$<>""
  6739.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6740.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6741.   If NUMEROEDIFICIO$<>""
  6742.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6743.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6744.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6745.    If NUMEROSTANZA$<>""
  6746.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6747.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6748.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6749.    End If 
  6750.   End If 
  6751.  Else 
  6752.   If NUMEROLUOGO$="n"
  6753.    DREZIONE=$FFFF
  6754.   Else 
  6755.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6756.   End If 
  6757.  End If 
  6758.  DREZIONES(3,STANZA,EDIFICIO)=DREZIONE
  6759. End If 
  6760. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  6761. Cls 
  6762. Print "Direzione Sud della stanza";STANZA;">";
  6763. E=DREZIONE/$10000
  6764. If E>0
  6765.  S=DREZIONE mod $10000
  6766.  Print "edificio";E;" stanza";S
  6767. Else 
  6768.  If DREZIONE<$FFFF
  6769.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6770.  Else 
  6771.   Print " nessuno"
  6772.  End If 
  6773. End If 
  6774. Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6775. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6776. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6777. If NUMEROLUOGO$<>""
  6778.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6779.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6780.   If NUMEROEDIFICIO$<>""
  6781.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6782.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6783.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6784.    If NUMEROSTANZA$<>""
  6785.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6786.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6787.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6788.    End If 
  6789.   End If 
  6790.  Else 
  6791.   If NUMEROLUOGO$="n"
  6792.    DREZIONE=$FFFF
  6793.   Else 
  6794.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6795.   End If 
  6796.  End If 
  6797.  DREZIONES(4,STANZA,EDIFICIO)=DREZIONE
  6798. End If 
  6799. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  6800. Cls 
  6801. Print "Direzione SudOvest della stanza";STANZA;">";
  6802. E=DREZIONE/$10000
  6803. If E>0
  6804.  S=DREZIONE mod $10000
  6805.  Print "edificio";E;" stanza";S
  6806. Else 
  6807.  If DREZIONE<$FFFF
  6808.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6809.  Else 
  6810.   Print " nessuno"
  6811.  End If 
  6812. End If 
  6813. Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6814. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6815. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6816. If NUMEROLUOGO$<>""
  6817.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6818.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6819.   If NUMEROEDIFICIO$<>""
  6820.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6821.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6822.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6823.    If NUMEROSTANZA$<>""
  6824.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6825.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6826.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6827.    End If 
  6828.   End If 
  6829.  Else 
  6830.   If NUMEROLUOGO$="n"
  6831.    DREZIONE=$FFFF
  6832.   Else 
  6833.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6834.   End If 
  6835.  End If 
  6836.  DREZIONES(5,STANZA,EDIFICIO)=DREZIONE
  6837. End If 
  6838. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  6839. Cls 
  6840. Print "Direzione Ovest della stanza";STANZA;">";
  6841. E=DREZIONE/$10000
  6842. If E>0
  6843.  S=DREZIONE mod $10000
  6844.  Print "edificio";E;" stanza";S
  6845. Else 
  6846.  If DREZIONE<$FFFF
  6847.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6848.  Else 
  6849.   Print " nessuno"
  6850.  End If 
  6851. End If 
  6852. Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6853. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6854. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6855. If NUMEROLUOGO$<>""
  6856.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6857.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6858.   If NUMEROEDIFICIO$<>""
  6859.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6860.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6861.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6862.    If NUMEROSTANZA$<>""
  6863.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6864.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6865.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6866.    End If 
  6867.   End If 
  6868.  Else 
  6869.   If NUMEROLUOGO$="n"
  6870.    DREZIONE=$FFFF
  6871.   Else 
  6872.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6873.   End If 
  6874.  End If 
  6875.  DREZIONES(6,STANZA,EDIFICIO)=DREZIONE
  6876. End If 
  6877. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  6878. Cls 
  6879. Print "Direzione NordOvest della stanza";STANZA;">";
  6880. E=DREZIONE/$10000
  6881. If E>0
  6882.  S=DREZIONE mod $10000
  6883.  Print "edificio";E;" stanza";S
  6884. Else 
  6885.  If DREZIONE<$FFFF
  6886.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6887.  Else 
  6888.   Print " nessuno"
  6889.  End If 
  6890. End If 
  6891. Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6892. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6893. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6894. If NUMEROLUOGO$<>""
  6895.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6896.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6897.   If NUMEROEDIFICIO$<>""
  6898.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6899.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6900.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6901.    If NUMEROSTANZA$<>""
  6902.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6903.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6904.     DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6905.    End If 
  6906.   End If 
  6907.  Else 
  6908.   If NUMEROLUOGO$="n"
  6909.    DREZIONE=$FFFF
  6910.   Else 
  6911.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6912.   End If 
  6913.  End If 
  6914.  DREZIONES(7,STANZA,EDIFICIO)=DREZIONE
  6915. End If 
  6916. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  6917. Cls 
  6918. Print "Direzione Sopra della stanza";STANZA;">";
  6919. E=DREZIONE/$10000
  6920. If E>0
  6921.  S=DREZIONE mod $10000
  6922.  Print "edificio";E;" stanza";S
  6923. Else 
  6924.  If DREZIONE<$FFFF
  6925.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6926.  Else 
  6927.   Print " nessuno"
  6928.  End If 
  6929. End If 
  6930. Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6931. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6932. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6933. If NUMEROLUOGO$<>""
  6934.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6935.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6936.   If NUMEROEDIFICIO$<>""
  6937.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6938.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6939.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6940.    If NUMEROSTANZA$<>""
  6941.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6942.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6943.     If NUMEROSTANZA=0
  6944.      DREZIONE=NUMEROEDIFICIO*$10000
  6945.     Else 
  6946.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6947.     End If 
  6948.    End If 
  6949.   End If 
  6950.  Else 
  6951.   If NUMEROLUOGO$="n"
  6952.    DREZIONE=$FFFF
  6953.   Else 
  6954.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6955.   End If 
  6956.  End If 
  6957.  DREZIONES(8,STANZA,EDIFICIO)=DREZIONE
  6958. End If 
  6959. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  6960. Cls 
  6961. Print "Direzione Sotto della stanza";STANZA;">luogo";
  6962. E=DREZIONE/$10000
  6963. If E>0
  6964.  S=DREZIONE mod $10000
  6965.  Print "edificio";E;" stanza";S
  6966. Else 
  6967.  If DREZIONE<$FFFF
  6968.   Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6969.  Else 
  6970.   Print " nessuno"
  6971.  End If 
  6972. End If 
  6973. Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6974. Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6975. NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6976. If NUMEROLUOGO$<>""
  6977.  If NUMEROLUOGO$="e" and NUMEROE>-1
  6978.   Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6979.   If NUMEROEDIFICIO$<>""
  6980.    NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6981.    Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6982.    Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6983.    If NUMEROSTANZA$<>""
  6984.     NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6985.     Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6986.     If NUMEROSTANZA=0
  6987.      DREZIONE=NUMEROEDIFICIO*$10000
  6988.     Else 
  6989.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6990.     End If 
  6991.    End If 
  6992.   End If 
  6993.  Else 
  6994.   If NUMEROLUOGO$="n"
  6995.    DREZIONE=$FFFF
  6996.   Else 
  6997.    DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6998.   End If 
  6999.  End If 
  7000.  DREZIONES(9,STANZA,EDIFICIO)=DREZIONE
  7001. End If 
  7002. Cls 
  7003. Print "Soldi nella stanza";STANZA;">";Str$(SOLDIS(STANZA,EDIFICIO))-" ";" ";
  7004. If SOLDIS(STANZA,EDIFICIO)=1 Then Print "soldo" Else Print "soldi"
  7005. Locate 0,ULTIMALINEA
  7006. Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLASTANZA$;
  7007. If SOLDINELLASTANZA$<>""
  7008.  SOLDINELLASTANZA=Val(SOLDINELLASTANZA$)
  7009.  Proc LIMITI[SOLDINELLASTANZA,0,65535] : SOLDIS(STANZA,EDIFICIO)=Param
  7010. End If 
  7011. Curs Off 
  7012. End Proc
  7013. Procedure MORTE[P]
  7014. If P=0
  7015.  COMPIUTAAZIONE=0
  7016.  Print NOMEP$(0);" ï¿½ morto. La tua avventura ï¿½ finita."
  7017.  Print "La tua avventura ï¿½ durata";
  7018.  GIORNI=TEMP0TRASCORSO/1440
  7019.  If GIORNI>0
  7020.   Print GIORNI;
  7021.   If GIORNI=1
  7022.    Print " giorno"; Else Print " giorni";
  7023.   End If 
  7024.  End If 
  7025.  _ORE=TEMP0TRASCORSO/60 mod 24
  7026.  If _ORE>0
  7027.   Print _ORE;
  7028.   If _ORE=1
  7029.    Print " ora"; Else Print " ore";
  7030.   End If 
  7031.  End If 
  7032.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  7033.  If M1NUTI=1
  7034.   Print " minuto"; Else Print " minuti";
  7035.  End If 
  7036.  Print " di gioco."
  7037.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  7038. Else 
  7039.  If Btst(2,TIPOP(0))=False
  7040.   Remember X : Remember Y 
  7041.   Print NOMEP$(P);" ï¿½ mort";
  7042.   If Btst(1,TIPOP(P))=True
  7043.    Print "a"
  7044.   Else 
  7045.    Print "o"
  7046.   End If 
  7047.  End If 
  7048. End If 
  7049. For A=0 To NUMEROO
  7050.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  7051.  POSIZIONEO(A)=POSIZIONEP(P)
  7052.   If Btst(1,TIPOO(A))=True
  7053.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  7054.   Else 
  7055.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  7056.   End If 
  7057.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  7058.    For B=0 To NUMEROO
  7059.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  7060.      If Btst(1,TIPOO(B))=True
  7061.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  7062.      Else 
  7063.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  7064.      End If 
  7065.     End If 
  7066.    Next B
  7067.    For B=1 To NUMEROP
  7068.     If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  7069.      Add PESONETTOP(P),-PESOP(B)*1000
  7070.      Add PESONETTOP(P),-PESONETTOP(B)
  7071.     End If 
  7072.    Next B
  7073.   End If 
  7074.  End If 
  7075. Next A
  7076. Add SOLDIL(POSIZIONEP(P)),SOLDIP(P)
  7077. Add PESONETTOP(P),-SOLDIP(P)*PESOS
  7078. SOLDIP(P)=0
  7079. End Proc
  7080. Procedure MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  7081. If AZIONE=1
  7082.  Print "dai ai personaggi";PARA;" oggett";
  7083.  If PARA=1
  7084.   Print "o"
  7085.  Else 
  7086.   Print "i"
  7087.  End If 
  7088. Else If AZIONE=2
  7089.  Print "dai ai personaggi";PARA;" ";
  7090.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7091.  If PARA=1
  7092.   Print NOMESCO$(PARB)
  7093.  Else 
  7094.   Print NOMEPCO$(PARB)
  7095.  End If 
  7096. Else If AZIONE=3
  7097.  Print "dai ai personaggi";PARA;" oggett";
  7098.  If PARA=1
  7099.   Print "o ";
  7100.  Else 
  7101.   Print "i ";
  7102.  End If 
  7103.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7104. Else If AZIONE=4
  7105.  Print "dai ai personaggi";PARA;" personaggi";
  7106.  If PARA=1
  7107.   Print "o"
  7108.  Else 
  7109.   Print 
  7110.  End If 
  7111. Else If AZIONE=5
  7112.  Print "dai ai personaggi ";
  7113.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7114.  Print NOMEP$(PARA)
  7115. Else If AZIONE=6
  7116.  Print "dai a ";
  7117.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7118.  Print NOMEP$(PARA);PARB;" oggett";
  7119.  If PARB=1
  7120.   Print "o"
  7121.  Else 
  7122.   Print "i"
  7123.  End If 
  7124. Else If AZIONE=7
  7125.  Print "dai a ";
  7126.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7127.  Print NOMEP$(PARA);PARB;" ";
  7128.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7129.  If PARB=1
  7130.   Print NOMESCO$(PARC)
  7131.  Else 
  7132.   Print NOMEPCO$(PARC)
  7133.  End If 
  7134. Else If AZIONE=8
  7135.  Print "dai a ";
  7136.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7137.  Print NOMEP$(PARA);PARB;" oggett";
  7138.  If PARB=1
  7139.   Print "o ";
  7140.  Else 
  7141.   Print "i ";
  7142.  End If 
  7143.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7144. Else If AZIONE=9
  7145.  Print "dai a ";
  7146.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7147.  Print NOMEP$(PARA);PARB;" personaggi";
  7148.  If PARB=1
  7149.   Print "o"
  7150.  Else 
  7151.   Print 
  7152.  End If 
  7153. Else If AZIONE=10
  7154.  Print "dai a ";
  7155.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7156.  Print NOMEP$(PARA);" ";
  7157.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7158.  Print NOMEP$(PARB)
  7159. Else If AZIONE=11
  7160.  Print "lascia";PARA;" oggett";
  7161.  If PARA=1
  7162.   Print "o"
  7163.  Else 
  7164.   Print "i"
  7165.  End If 
  7166. Else If AZIONE=12
  7167.  Print "lascia";PARA;" ";
  7168.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7169.  If PARA=1
  7170.   Print NOMESCO$(PARB)
  7171.  Else 
  7172.   Print NOMEPCO$(PARB)
  7173.  End If 
  7174. Else If AZIONE=13
  7175.  Print "lascia";PARA;" oggett";
  7176.  If PARA=1
  7177.   Print "o ";
  7178.  Else 
  7179.   Print "i ";
  7180.  End If 
  7181.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7182. Else If AZIONE=14
  7183.  Print "lascia";PARA;" personaggi";
  7184.  If PARA=1
  7185.   Print "o"
  7186.  Else 
  7187.   Print 
  7188.  End If 
  7189. Else If AZIONE=15
  7190.  Print "lascia ";
  7191.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7192.  Print NOMEP$(PARA)
  7193. Else If AZIONE=16
  7194.  Print "muoviti"
  7195. Else If AZIONE=17
  7196.  Print "prendi";PARA;" oggett";
  7197.  If PARA=1
  7198.   Print "o"
  7199.  Else 
  7200.   Print "i"
  7201.  End If 
  7202. Else If AZIONE=18
  7203.  Print "prendi";PARA;" ";
  7204.  Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7205.  If PARA=1
  7206.   Print NOMESCO$(PARB)
  7207.  Else 
  7208.   Print NOMEPCO$(PARB)
  7209.  End If 
  7210. Else If AZIONE=19
  7211.  Print "prendi";PARA;" oggett";
  7212.  If PARA=1
  7213.   Print "o ";
  7214.  Else 
  7215.   Print "i ";
  7216.  End If 
  7217.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7218. Else If AZIONE=20
  7219.  Print "prendi";PARA;" personaggi";
  7220.  If PARA=1
  7221.   Print "o"
  7222.  Else 
  7223.   Print 
  7224.  End If 
  7225. Else If AZIONE=21
  7226.  Print "prendi ";
  7227.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7228.  Print NOMEP$(PARA)
  7229. Else If AZIONE=22
  7230.  Print "segui"
  7231. Else If AZIONE=23
  7232.  Print "segui ";
  7233.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7234.  Print NOMEP$(PARA)
  7235. Else If AZIONE=24
  7236.  Print "usa un'oggetto su";PARA;" oggett";
  7237.  If PARA=1
  7238.   Print "o"
  7239.  Else 
  7240.   Print "i"
  7241.  End If 
  7242. Else If AZIONE=25
  7243.  Print "usa un'oggetto su";PARA;" ";
  7244.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7245.  If PARA=1
  7246.   Print NOMESCO$(PARB)
  7247.  Else 
  7248.   Print NOMEPCO$(PARB)
  7249.  End If 
  7250. Else If AZIONE=26
  7251.  Print "usa un'oggetto su";PARA;" oggett";
  7252.  If PARA=1
  7253.   Print "o ";
  7254.  Else 
  7255.   Print "i ";
  7256.  End If 
  7257.  Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7258. Else If AZIONE=27
  7259.  Print "usa un'oggetto su";PARA;" personaggi";
  7260.  If PARA=1
  7261.   Print "o"
  7262.  Else 
  7263.   Print 
  7264.  End If 
  7265. Else If AZIONE=28
  7266.  Print "usa un'oggetto su ";
  7267.  Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7268.  Print NOMEP$(PARA)
  7269. Else If AZIONE=29
  7270.  Print "usa 1 ";
  7271.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7272.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7273.  If PARB=1
  7274.   Print "o"
  7275.  Else 
  7276.   Print "i"
  7277.  End If 
  7278. Else If AZIONE=30
  7279.  Print "usa 1 ";
  7280.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7281.  Print NOMESCO$(PARA);" su";PARB;" ";
  7282.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7283.  If PARB=1
  7284.   Print NOMESCO$(PARC)
  7285.  Else 
  7286.   Print NOMEPCO$(PARC)
  7287.  End If 
  7288. Else If AZIONE=31
  7289.  Print "usa 1 ";
  7290.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7291.  Print NOMESCO$(PARA);" su";PARB;" oggett";
  7292.  If PARB=1
  7293.   Print "o ";
  7294.  Else 
  7295.   Print "i ";
  7296.  End If 
  7297.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7298. Else If AZIONE=32
  7299.  Print "usa 1 ";
  7300.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7301.  Print NOMESCO$(PARA);" su";PARB;" personaggi";
  7302.  If PARB=1
  7303.   Print "o"
  7304.  Else 
  7305.   Print 
  7306.  End If 
  7307. Else If AZIONE=33
  7308.  Print "usa 1 ";
  7309.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7310.  Print NOMESCO$(PARA);" su ";
  7311.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7312.  Print NOMEP$(PARB)
  7313. Else If AZIONE=34
  7314.  Print "usa un'oggetto ";
  7315.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7316.  Print Space$(9);"su";PARB;" oggett";
  7317.  If PARB=1
  7318.   Print "o"
  7319.  Else 
  7320.   Print "i"
  7321.  End If 
  7322. Else If AZIONE=35
  7323.  Print "usa un'oggetto ";
  7324.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7325.  Print Space$(9);"su";PARB;" ";
  7326.  Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7327.  If PARB=1
  7328.   Print NOMESCO$(PARC)
  7329.  Else 
  7330.   Print NOMEPCO$(PARC)
  7331.  End If 
  7332. Else If AZIONE=36
  7333.  Print "usa un'oggetto ";
  7334.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7335.  Print Space$(9);"su";PARB;" oggett";
  7336.  If PARB=1
  7337.   Print "o ";
  7338.  Else 
  7339.   Print "i ";
  7340.  End If 
  7341.  Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7342. Else If AZIONE=37
  7343.  Print "usa un'oggetto ";
  7344.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7345.  Print Space$(9);"su";PARB;" personaggi";
  7346.  If PARB=1
  7347.   Print "o"
  7348.  Else 
  7349.   Print 
  7350.  End If 
  7351. Else If AZIONE=38
  7352.  Print "usa un'oggetto ";
  7353.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7354.  Print Space$(9);"su ";
  7355.  Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7356.  Print NOMEP$(PARB)
  7357. Else If AZIONE=39
  7358.  Print "usati un'oggetto"
  7359. Else If AZIONE=40
  7360.  Print "usati un'oggetto ";
  7361.  Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7362.  Print NOMESCO$(PARA)
  7363. Else If AZIONE=41
  7364.  Print "usati un'oggetto ";
  7365.  Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7366. End If 
  7367. End Proc
  7368. Procedure MOSTRACATEGORIADEGLIOGGETTI
  7369. Cls 
  7370. If M0DIFICA=False
  7371.  Proc TIC[MESSAGGIO3$,0] : Print 
  7372. End If 
  7373. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>"
  7374. Print NOMESCO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  7375. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7376. PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  7377. Print Str$(PESOOGGETTO)-" ";" ";
  7378. If PESOOGGETTO=1
  7379.  Print "grammo"
  7380. Else 
  7381.  Print "grammi"
  7382. End If 
  7383. Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>"
  7384. Print NOMESRO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  7385. Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>";
  7386. PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  7387. Print Str$(PESORESTOOGGETTO)-" ";" ";
  7388. If PESORESTOOGGETTO=1
  7389.  Print "grammo"
  7390. Else 
  7391.  Print "grammi"
  7392. End If 
  7393. Print "Parametro della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7394. Print Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  7395. If Btst(0,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Commestibile"
  7396. If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Contenitore"
  7397. If Btst(2,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Difensivo"
  7398. If Btst(3,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Leggibile"
  7399. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Liquido"
  7400. If Btst(5,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Magico"
  7401. If Btst(6,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Offensivo"
  7402. If Btst(7,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Residente"
  7403. If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=False Then Print "Solido"
  7404. If Btst(8,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasferibile"
  7405. If Btst(9,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasparente"
  7406. If Btst(10,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Vincolato"
  7407. End Proc
  7408. Procedure MOSTRACATEGORIAPERAZIONE[CATEGORIA]
  7409. If Btst(0,CATEGORIA)=True Then Print "commestibile ";
  7410. If Btst(1,CATEGORIA)=True Then Print "contenitore ";
  7411. If Btst(2,CATEGORIA)=True Then Print "difensivo ";
  7412. If Btst(3,CATEGORIA)=True Then Print "leggibile ";
  7413. If Btst(4,CATEGORIA)=True Then Print "liquido "; Else Print "solido ";
  7414. If Btst(5,CATEGORIA)=True Then Print "magico ";
  7415. If Btst(6,CATEGORIA)=True Then Print "offensivo ";
  7416. If Btst(8,CATEGORIA)=True Then Print "trasferibile ";
  7417. If Btst(9,CATEGORIA)=True Then Print "trasparente ";
  7418. If Btst(10,CATEGORIA)=True Then Print "vincolato ";
  7419. Print 
  7420. End Proc
  7421. Procedure MOSTRACATEGORIAPERINSERIMENTO[P]
  7422. Repeat 
  7423.  Cls 
  7424.  Print "Nome del personaggio";P;">";NOMEP$(P)
  7425.  Print At(0,ULTIMALINEA-11);"Categoria";CATEGORIA;" degli oggetti>";NOMEPCO$(CATEGORIA)
  7426.  If Btst(0,TIPOCO(CATEGORIA))=True Then Print "commestibile "
  7427.  If Btst(1,TIPOCO(CATEGORIA))=True Then Print "contenitore "
  7428.  If Btst(2,TIPOCO(CATEGORIA))=True Then Print "difensivo "
  7429.  If Btst(3,TIPOCO(CATEGORIA))=True Then Print "leggibile "
  7430.  If Btst(4,TIPOCO(CATEGORIA))=True Then Print "liquido " Else Print "solido "
  7431.  If Btst(5,TIPOCO(CATEGORIA))=True Then Print "magico "
  7432.  If Btst(6,TIPOCO(CATEGORIA))=True Then Print "offensivo "
  7433.  If Btst(8,TIPOCO(CATEGORIA))=True Then Print "trasferibile "
  7434.  If Btst(9,TIPOCO(CATEGORIA))=True Then Print "trasparente "
  7435.  If Btst(10,TIPOCO(CATEGORIA))=True Then Print "vincolato "
  7436.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli la categoria Spazio conferma",ULTIMALINEA]
  7437.  Repeat 
  7438.   TASTOPREMUTO$=Inkey$
  7439.  Until TASTOPREMUTO$<>""
  7440.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  7441.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  7442. Until TASTOPREMUTO$=" "
  7443. End Proc[TIPOCO(CATEGORIA)]
  7444. Procedure MOSTRAGLIEDIFICI
  7445. Shared TASTOPREMUTO$
  7446. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta edificio...C -> carica un"
  7447. MESSAGGIO2$=MESSAGGIO2$+" file di Adventures Conceiver...D -> mostra il desti"
  7448. MESSAGGIO2$=MESSAGGIO2$+"no (scopo) del gioco...G -> gioca un'avventura...I -"
  7449. MESSAGGIO2$=MESSAGGIO2$+"> mostra le stanze dell'edificio corrente...K -> mos"
  7450. MESSAGGIO2$=MESSAGGIO2$+"tra le categorie degli oggetti...L -> mostra i luogh"
  7451. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7452. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7453. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7454. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7455. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7456. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7457. Repeat 
  7458.  Proc MOSTRAEDIFICIO
  7459.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7460.  CARATTEREMESSAGGIO=0
  7461.  Repeat 
  7462.   TASTOPREMUTO$=Inkey$
  7463.   Proc MESSAGGIO[MESSAGGIO2$]
  7464.  Until TASTOPREMUTO$<>""
  7465.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7466.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7467.  If TASTOPREMUTO$="d" Then Exit 
  7468.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7469.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7470.  If TASTOPREMUTO$="k" Then Exit 
  7471.  If TASTOPREMUTO$="l" Then Exit 
  7472.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7473.  If TASTOPREMUTO$="o" Then Exit 
  7474.  If TASTOPREMUTO$="p" Then Exit 
  7475.  If TASTOPREMUTO$="r" Then Exit 
  7476.  If TASTOPREMUTO$="s"
  7477.   Proc DAVARIABILIABANCO[False]
  7478.   If SENZAMEMORIA=False
  7479.    Proc DAVARIABILIABANCO[True]
  7480.    If SENZAMEMORIA=False
  7481.     Proc SALVAUNFILE
  7482.    End If 
  7483.   End If 
  7484.  End If 
  7485.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7486.  If EDIFICIO>-1
  7487.   If TASTOPREMUTO$=Cup$
  7488.    Add EDIFICIO,-1,0 To NUMEROE
  7489.   End If 
  7490.   If TASTOPREMUTO$=Cdown$
  7491.    Add EDIFICIO,1,0 To NUMEROE
  7492.   End If 
  7493.  End If 
  7494. Until TASTOPREMUTO$=Chr$(27)
  7495. End Proc
  7496. Procedure MOSTRAGLIOGGETTI
  7497. Shared TASTOPREMUTO$
  7498. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta oggetto...C -> carica un "
  7499. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7500. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7501. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7502. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7503. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi M -> modifica un'avventur"
  7504. MESSAGGIO2$=MESSAGGIO2$+"a...P -> mostra i personaggi...R -> mostra le region"
  7505. MESSAGGIO2$=MESSAGGIO2$+"i...S -> salva un file di Adventures Conceiver...? -"
  7506. MESSAGGIO2$=MESSAGGIO2$+"> mostra i meriti...Esc -> esci da Adventures Concei"
  7507. MESSAGGIO2$=MESSAGGIO2$+"ver..."
  7508. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7509. Repeat 
  7510.  Proc MOSTRAOGGETTO
  7511.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7512.  CARATTEREMESSAGGIO=0
  7513.  Repeat 
  7514.   TASTOPREMUTO$=Inkey$
  7515.   Proc MESSAGGIO[MESSAGGIO2$]
  7516.  Until TASTOPREMUTO$<>""
  7517.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7518.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7519.  If TASTOPREMUTO$="d" Then Exit 
  7520.  If TASTOPREMUTO$="e" Then Exit 
  7521.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7522.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7523.  If TASTOPREMUTO$="k" Then Exit 
  7524.  If TASTOPREMUTO$="l" Then Exit 
  7525.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7526.  If TASTOPREMUTO$="p" Then Exit 
  7527.  If TASTOPREMUTO$="r" Then Exit 
  7528.  If TASTOPREMUTO$="s"
  7529.   Proc DAVARIABILIABANCO[False]
  7530.   If SENZAMEMORIA=False
  7531.    Proc DAVARIABILIABANCO[True]
  7532.    If SENZAMEMORIA=False
  7533.     Proc SALVAUNFILE
  7534.    End If 
  7535.   End If 
  7536.  End If 
  7537.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7538.  If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  7539.  If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  7540. Until TASTOPREMUTO$=Chr$(27)
  7541. End Proc
  7542. Procedure MOSTRAEDIFICIO
  7543. Cls 
  7544. If M0DIFICA=False
  7545.  Proc TIC[MESSAGGIO3$,0] : Print 
  7546. End If 
  7547. If EDIFICIO>-1
  7548.  Print "Edificio";EDIFICIO;":"
  7549.  Print "Nome>";NOMEE$(EDIFICIO)
  7550.  Print "Posizione>luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  7551.  Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  7552. Else 
  7553.  Print "Nessun edificio"
  7554. End If 
  7555. End Proc
  7556. Procedure MOSTRAILDESTINODELGIOCO
  7557. Shared TASTOPREMUTO$
  7558. MESSAGGIO2$="C -> carica un file di Adventures Conceiver...E -> mostra gli ed"
  7559. MESSAGGIO2$=MESSAGGIO2$+"ifici...G -> gioca un'avventura...I -> mostra le sta"
  7560. MESSAGGIO2$=MESSAGGIO2$+"nze dell'edificio corrente...K -> mostra le categori"
  7561. MESSAGGIO2$=MESSAGGIO2$+"e degli oggetti...L -> mostra i luoghi...M -> modifi"
  7562. MESSAGGIO2$=MESSAGGIO2$+"ca un'avventura...O -> mostra gli oggetti...P -> mos"
  7563. MESSAGGIO2$=MESSAGGIO2$+"tra i personaggi...R -> mostra le regioni...S -> sal"
  7564. MESSAGGIO2$=MESSAGGIO2$+"va un file di Adventures Conceiver...? -> mostra i m"
  7565. MESSAGGIO2$=MESSAGGIO2$+"eriti...Esc -> esci da Adventures Conceiver..."
  7566. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7567. Repeat 
  7568.  Proc SCOPODELGIOCO[True]
  7569.  Print "Nemici>";
  7570.  If ANEMICI=True Then Print "attivati" Else Print "disattivati"
  7571.  Print "Musica>";
  7572.  If _MUSICA=True Then Print "attivata" Else Print "disattivata"
  7573.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7574.  CARATTEREMESSAGGIO=0
  7575.  Repeat 
  7576.   TASTOPREMUTO$=Inkey$
  7577.   Proc MESSAGGIO[MESSAGGIO2$]
  7578.  Until TASTOPREMUTO$<>""
  7579.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7580.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7581.  If TASTOPREMUTO$="e" Then Exit 
  7582.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7583.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7584.  If TASTOPREMUTO$="k" Then Exit 
  7585.  If TASTOPREMUTO$="l" Then Exit 
  7586.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7587.  If TASTOPREMUTO$="o" Then Exit 
  7588.  If TASTOPREMUTO$="p" Then Exit 
  7589.  If TASTOPREMUTO$="r" Then Exit 
  7590.  If TASTOPREMUTO$="s"
  7591.   Proc DAVARIABILIABANCO[False]
  7592.   If SENZAMEMORIA=False
  7593.    Proc DAVARIABILIABANCO[True]
  7594.    If SENZAMEMORIA=False
  7595.     Proc SALVAUNFILE
  7596.    End If 
  7597.   End If 
  7598.  End If 
  7599.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7600. Until TASTOPREMUTO$=Chr$(27)
  7601. End Proc
  7602. Procedure MOSTRAILUOGHI
  7603. Shared TASTOPREMUTO$
  7604. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta luogo...C -> carica un fi"
  7605. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...D -> mostra il destino "
  7606. MESSAGGIO2$=MESSAGGIO2$+"(scopo) del gioco...E -> mostra gli edifici...G -> g"
  7607. MESSAGGIO2$=MESSAGGIO2$+"ioca un'avventura...I -> mostra le stanze dell'edifi"
  7608. MESSAGGIO2$=MESSAGGIO2$+"cio corrente...K -> mostra le categorie degli oggett"
  7609. MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7610. MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7611. MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7612. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7613. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7614. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7615. Repeat 
  7616.  Proc MOSTRALUOGO
  7617.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7618.  CARATTEREMESSAGGIO=0
  7619.  Repeat 
  7620.   TASTOPREMUTO$=Inkey$
  7621.   Proc MESSAGGIO[MESSAGGIO2$]
  7622.  Until TASTOPREMUTO$<>""
  7623.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7624.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7625.  If TASTOPREMUTO$="d" Then Exit 
  7626.  If TASTOPREMUTO$="e" Then Exit 
  7627.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7628.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7629.  If TASTOPREMUTO$="k" Then Exit 
  7630.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7631.  If TASTOPREMUTO$="o" Then Exit 
  7632.  If TASTOPREMUTO$="p" Then Exit 
  7633.  If TASTOPREMUTO$="r" Then Exit 
  7634.  If TASTOPREMUTO$="s"
  7635.   Proc DAVARIABILIABANCO[False]
  7636.   If SENZAMEMORIA=False
  7637.    Proc DAVARIABILIABANCO[True]
  7638.    If SENZAMEMORIA=False
  7639.     Proc SALVAUNFILE
  7640.    End If 
  7641.   End If 
  7642.  End If 
  7643.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7644.  If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  7645.  If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  7646. Until TASTOPREMUTO$=Chr$(27)
  7647. End Proc
  7648. Procedure MOSTRAIPERSONAGGI
  7649. Shared TASTOPREMUTO$
  7650. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta personaggio...C -> carica"
  7651. MESSAGGIO2$=MESSAGGIO2$+" un file di Adventures Conceiver...D -> mostra il de"
  7652. MESSAGGIO2$=MESSAGGIO2$+"stino (scopo) del gioco...E -> mostra gli edifici..."
  7653. MESSAGGIO2$=MESSAGGIO2$+"G -> gioca un'avventura...I -> mostra le stanze dell"
  7654. MESSAGGIO2$=MESSAGGIO2$+"'edificio corrente...K -> mostra le categorie degli "
  7655. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7656. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...R -> mostra le r"
  7657. MESSAGGIO2$=MESSAGGIO2$+"egioni...S -> salva un file di Adventures Conceiver."
  7658. MESSAGGIO2$=MESSAGGIO2$+"..? -> mostra i meriti...Esc -> esci da Adventures C"
  7659. MESSAGGIO2$=MESSAGGIO2$+"onceiver..."
  7660. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7661. Repeat 
  7662.  Proc MOSTRAPERSONAGGIO
  7663.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7664.  CARATTEREMESSAGGIO=0
  7665.  Repeat 
  7666.   TASTOPREMUTO$=Inkey$
  7667.   Proc MESSAGGIO[MESSAGGIO2$]
  7668.  Until TASTOPREMUTO$<>""
  7669.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7670.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7671.  If TASTOPREMUTO$="d" Then Exit 
  7672.  If TASTOPREMUTO$="e" Then Exit 
  7673.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7674.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7675.  If TASTOPREMUTO$="k" Then Exit 
  7676.  If TASTOPREMUTO$="l" Then Exit 
  7677.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7678.  If TASTOPREMUTO$="o" Then Exit 
  7679.  If TASTOPREMUTO$="r" Then Exit 
  7680.  If TASTOPREMUTO$="s"
  7681.   Proc DAVARIABILIABANCO[False]
  7682.   If SENZAMEMORIA=False
  7683.    Proc DAVARIABILIABANCO[True]
  7684.    If SENZAMEMORIA=False
  7685.     Proc SALVAUNFILE
  7686.    End If 
  7687.   End If 
  7688.  End If 
  7689.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7690.  If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  7691.  If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  7692. Until TASTOPREMUTO$=Chr$(27)
  7693. End Proc
  7694. Procedure MOSTRALECATEGORIEDEGLIOGGETTI
  7695. Shared TASTOPREMUTO$
  7696. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta categoria...C -> carica u"
  7697. MESSAGGIO2$=MESSAGGIO2$+"n file di Adventures Conceiver...D -> mostra il dest"
  7698. MESSAGGIO2$=MESSAGGIO2$+"ino (scopo) del gioco...E -> mostra gli edifici...G "
  7699. MESSAGGIO2$=MESSAGGIO2$+"-> gioca un'avventura...I -> mostra le stanze dell'e"
  7700. MESSAGGIO2$=MESSAGGIO2$+"dificio corrente...L -> mostra i luoghi...M -> modif"
  7701. MESSAGGIO2$=MESSAGGIO2$+"ica un'avventura...O -> mostra gli oggetti...P -> mo"
  7702. MESSAGGIO2$=MESSAGGIO2$+"stra i personaggi...R -> mostra le regioni...S -> sa"
  7703. MESSAGGIO2$=MESSAGGIO2$+"lva un file di Adventures Conceiver...? -> mostra i "
  7704. MESSAGGIO2$=MESSAGGIO2$+"meriti...Esc -> esci da Adventures Conceiver..."
  7705. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7706. Repeat 
  7707.  Proc MOSTRACATEGORIADEGLIOGGETTI
  7708.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7709.  CARATTEREMESSAGGIO=0
  7710.  Repeat 
  7711.   TASTOPREMUTO$=Inkey$
  7712.   Proc MESSAGGIO[MESSAGGIO2$]
  7713.  Until TASTOPREMUTO$<>""
  7714.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7715.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7716.  If TASTOPREMUTO$="d" Then Exit 
  7717.  If TASTOPREMUTO$="e" Then Exit 
  7718.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7719.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7720.  If TASTOPREMUTO$="l" Then Exit 
  7721.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7722.  If TASTOPREMUTO$="o" Then Exit 
  7723.  If TASTOPREMUTO$="p" Then Exit 
  7724.  If TASTOPREMUTO$="r" Then Exit 
  7725.  If TASTOPREMUTO$="s"
  7726.   Proc DAVARIABILIABANCO[False]
  7727.   If SENZAMEMORIA=False
  7728.    Proc DAVARIABILIABANCO[True]
  7729.    If SENZAMEMORIA=False
  7730.     Proc SALVAUNFILE
  7731.    End If 
  7732.   End If 
  7733.  End If 
  7734.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7735.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  7736.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  7737. Until TASTOPREMUTO$=Chr$(27)
  7738. End Proc
  7739. Procedure MOSTRALEREGIONI
  7740. Shared TASTOPREMUTO$
  7741. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta regione...C -> carica un "
  7742. MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7743. MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7744. MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7745. MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7746. MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi...M -> modifica un'avvent"
  7747. MESSAGGIO2$=MESSAGGIO2$+"ura...O -> mostra gli oggetti...P -> mostra i person"
  7748. MESSAGGIO2$=MESSAGGIO2$+"aggi...S -> salva un file di Adventures Conceiver..."
  7749. MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7750. MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7751. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7752. Repeat 
  7753.  Proc MOSTRAREGIONE
  7754.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7755.  CARATTEREMESSAGGIO=0
  7756.  Repeat 
  7757.   TASTOPREMUTO$=Inkey$
  7758.   Proc MESSAGGIO[MESSAGGIO2$]
  7759.  Until TASTOPREMUTO$<>""
  7760.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7761.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7762.  If TASTOPREMUTO$="d" Then Exit 
  7763.  If TASTOPREMUTO$="e" Then Exit 
  7764.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7765.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7766.  If TASTOPREMUTO$="k" Then Exit 
  7767.  If TASTOPREMUTO$="l" Then Exit 
  7768.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7769.  If TASTOPREMUTO$="o" Then Exit 
  7770.  If TASTOPREMUTO$="p" Then Exit 
  7771.  If TASTOPREMUTO$="s"
  7772.   Proc DAVARIABILIABANCO[False]
  7773.   If SENZAMEMORIA=False
  7774.    Proc DAVARIABILIABANCO[True]
  7775.    If SENZAMEMORIA=False
  7776.     Proc SALVAUNFILE
  7777.    End If 
  7778.   End If 
  7779.  End If 
  7780.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7781.  If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  7782.  If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  7783. Until TASTOPREMUTO$=Chr$(27)
  7784. End Proc
  7785. Procedure MOSTRALESTANZE
  7786. Shared TASTOPREMUTO$
  7787. MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta stanza...C -> carica un f"
  7788. MESSAGGIO2$=MESSAGGIO2$+"ile di Adventures Conceiver...D -> mostra il destino"
  7789. MESSAGGIO2$=MESSAGGIO2$+" (scopo) del gioco...E -> mostra gli edifici...G -> "
  7790. MESSAGGIO2$=MESSAGGIO2$+"gioca un'avventura...K -> mostra le categorie degli "
  7791. MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7792. MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...P -> mostra i pe"
  7793. MESSAGGIO2$=MESSAGGIO2$+"rsonaggi...R -> mostra le regioni...S -> salva un fi"
  7794. MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...? -> mostra i meriti..."
  7795. MESSAGGIO2$=MESSAGGIO2$+"Esc -> esci da Adventures Conceiver..."
  7796. MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7797. Repeat 
  7798.  Proc MOSTRASTANZA
  7799.  If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7800.  CARATTEREMESSAGGIO=0
  7801.  Repeat 
  7802.   TASTOPREMUTO$=Inkey$
  7803.   Proc MESSAGGIO[MESSAGGIO2$]
  7804.  Until TASTOPREMUTO$<>""
  7805.  TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7806.  If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7807.  If TASTOPREMUTO$="d" Then Exit 
  7808.  If TASTOPREMUTO$="e" Then Exit 
  7809.  If TASTOPREMUTO$="g" Then Proc GIOCA
  7810.  If TASTOPREMUTO$="k" Then Exit 
  7811.  If TASTOPREMUTO$="l" Then Exit 
  7812.  If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7813.  If TASTOPREMUTO$="o" Then Exit 
  7814.  If TASTOPREMUTO$="p" Then Exit 
  7815.  If TASTOPREMUTO$="r" Then Exit 
  7816.  If TASTOPREMUTO$="s"
  7817.   Proc DAVARIABILIABANCO[False]
  7818.   If SENZAMEMORIA=False
  7819.    Proc DAVARIABILIABANCO[True]
  7820.    If SENZAMEMORIA=False
  7821.     Proc SALVAUNFILE
  7822.    End If 
  7823.   End If 
  7824.  End If 
  7825.  If TASTOPREMUTO$="?" Then A=Dialog Box(_INTERFACCIA$)
  7826.  If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  7827.  If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  7828. Until TASTOPREMUTO$=Chr$(27)
  7829. End Proc
  7830. Procedure MOSTRALUOGO
  7831. Cls 
  7832. If M0DIFICA=False
  7833.  Proc TIC[MESSAGGIO3$,0] : Print 
  7834. End If 
  7835. Print "Luogo";LUOGO;":"
  7836. Print "Nome>";NOMEL$(LUOGO)
  7837. Print "Regione di appartenenza>";NOMER$(REGIONEL(LUOGO))
  7838. Print "Tipo di luogo>";TIPOL$(TIPOL(LUOGO))
  7839. DREZIONE=DREZIONEL(0,LUOGO)
  7840. Print "Direzione Nord     >";
  7841. E=DREZIONE/$10000
  7842. If E>0
  7843.  S=DREZIONE mod $10000
  7844.  Print "edificio";E;" stanza";S
  7845. Else 
  7846.  DREZIONE=DREZIONE mod $10000
  7847.  If DREZIONE<$FFFF
  7848.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7849.  Else 
  7850.   Print "nessun luogo"
  7851.  End If 
  7852. End If 
  7853. DREZIONE=DREZIONEL(1,LUOGO)
  7854. Print "Direzione NordEst  >";
  7855. E=DREZIONE/$10000
  7856. If E>0
  7857.  S=DREZIONE mod $10000
  7858.  Print "edificio";E;" stanza";S
  7859. Else 
  7860.  DREZIONE=DREZIONE mod $10000
  7861.  If DREZIONE<$FFFF
  7862.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7863.  Else 
  7864.   Print "nessun luogo"
  7865.  End If 
  7866. End If 
  7867. DREZIONE=DREZIONEL(2,LUOGO)
  7868. Print "Direzione Est      >";
  7869. E=DREZIONE/$10000
  7870. If E>0
  7871.  S=DREZIONE mod $10000
  7872.  Print "edificio";E;" stanza";S
  7873. Else 
  7874.  DREZIONE=DREZIONE mod $10000
  7875.  If DREZIONE<$FFFF
  7876.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7877.  Else 
  7878.   Print "nessun luogo"
  7879.  End If 
  7880. End If 
  7881. DREZIONE=DREZIONEL(3,LUOGO)
  7882. Print "Direzione SudEst   >";
  7883. E=DREZIONE/$10000
  7884. If E>0
  7885.  S=DREZIONE mod $10000
  7886.  Print "edificio";E;" stanza";S
  7887. Else 
  7888.  DREZIONE=DREZIONE mod $10000
  7889.  If DREZIONE<$FFFF
  7890.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7891.  Else 
  7892.   Print "nessun luogo"
  7893.  End If 
  7894. End If 
  7895. DREZIONE=DREZIONEL(4,LUOGO)
  7896. Print "Direzione Sud      >";
  7897. E=DREZIONE/$10000
  7898. If E>0
  7899.  S=DREZIONE mod $10000
  7900.  Print "edificio";E;" stanza";S
  7901. Else 
  7902.  DREZIONE=DREZIONE mod $10000
  7903.  If DREZIONE<$FFFF
  7904.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7905.  Else 
  7906.   Print "nessun luogo"
  7907.  End If 
  7908. End If 
  7909. DREZIONE=DREZIONEL(5,LUOGO)
  7910. Print "Direzione SudOvest >";
  7911. E=DREZIONE/$10000
  7912. If E>0
  7913.  S=DREZIONE mod $10000
  7914.  Print "edificio";E;" stanza";S
  7915. Else 
  7916.  DREZIONE=DREZIONE mod $10000
  7917.  If DREZIONE<$FFFF
  7918.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7919.  Else 
  7920.   Print "nessun luogo"
  7921.  End If 
  7922. End If 
  7923. DREZIONE=DREZIONEL(6,LUOGO)
  7924. Print "Direzione Ovest    >";
  7925. E=DREZIONE/$10000
  7926. If E>0
  7927.  S=DREZIONE mod $10000
  7928.  Print "edificio";E;" stanza";S
  7929. Else 
  7930.  DREZIONE=DREZIONE mod $10000
  7931.  If DREZIONE<$FFFF
  7932.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7933.  Else 
  7934.   Print "nessun luogo"
  7935.  End If 
  7936. End If 
  7937. DREZIONE=DREZIONEL(7,LUOGO)
  7938. Print "Direzione NordOvest>";
  7939. E=DREZIONE/$10000
  7940. If E>0
  7941.  S=DREZIONE mod $10000
  7942.  Print "edificio";E;" stanza";S
  7943. Else 
  7944.  DREZIONE=DREZIONE mod $10000
  7945.  If DREZIONE<$FFFF
  7946.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7947.  Else 
  7948.   Print "nessun luogo"
  7949.  End If 
  7950. End If 
  7951. DREZIONE=DREZIONEL(8,LUOGO)
  7952. Print "Direzione Sopra    >";
  7953. E=DREZIONE/$10000
  7954. If E>0
  7955.  S=DREZIONE mod $10000
  7956.  Print "edificio";E;" stanza";S
  7957. Else 
  7958.  DREZIONE=DREZIONE mod $10000
  7959.  If DREZIONE<$FFFF
  7960.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7961.  Else 
  7962.   Print "nessun luogo"
  7963.  End If 
  7964. End If 
  7965. DREZIONE=DREZIONEL(9,LUOGO)
  7966. Print "Direzione Sotto    >";
  7967. E=DREZIONE/$10000
  7968. If E>0
  7969.  S=DREZIONE mod $10000
  7970.  Print "edificio";E;" stanza";S
  7971. Else 
  7972.  DREZIONE=DREZIONE mod $10000
  7973.  If DREZIONE<$FFFF
  7974.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7975.  Else 
  7976.   Print "nessun luogo"
  7977.  End If 
  7978. End If 
  7979. SOLDINELLUOGO=SOLDIL(LUOGO)
  7980. If SOLDINELLUOGO>0
  7981.  Print Str$(SOLDINELLUOGO)-" ";" ";
  7982.  If SOLDINELLUOGO=1
  7983.   Print "soldo"
  7984.  Else 
  7985.   Print "soldi"
  7986.  End If 
  7987. End If 
  7988. End Proc
  7989. Procedure MOSTRAMESSAGGIO[MESSAGGIO4$,MESSAGGIO5$]
  7990. Cls 
  7991. Proc TIC[MESSAGGIO4$,0] : Print : POSIZIONE=1
  7992. Repeat 
  7993.  SPAZIO=Instr(MESSAGGIO5$," ",POSIZIONE)
  7994.  If SPAZIO>0
  7995.   If X Curs+SPAZIO-POSIZIONE>79
  7996.    Print : X=0
  7997.    Proc FONDOSCHERMOGIOCO
  7998.   End If 
  7999.   Print Mid$(MESSAGGIO5$,POSIZIONE,SPAZIO-POSIZIONE+1);
  8000.   POSIZIONE=SPAZIO+1
  8001.  Else 
  8002.   Print Mid$(MESSAGGIO5$,POSIZIONE,Len(MESSAGGIO5$)-POSIZIONE+1)
  8003.  End If 
  8004. Until SPAZIO=0
  8005. If X Curs>0 or Y Curs>0
  8006.  Proc TIC["Premi un tasto...",ULTIMALINEA] : Wait Key 
  8007. End If 
  8008. End Proc
  8009. Procedure MOSTRAOGGETTO
  8010. Cls 
  8011. If M0DIFICA=False
  8012.  Proc TIC[MESSAGGIO3$,0] : Print 
  8013. End If 
  8014. Print "Oggetto";OGGETTO;":"
  8015. Print "Nome>";
  8016. If Btst(1,TIPOO(OGGETTO))=True
  8017.  Print NOMESRO$(CATEGORIAO(OGGETTO))
  8018. Else 
  8019.  Print NOMESCO$(CATEGORIAO(OGGETTO))
  8020. End If 
  8021. Print "Posizione>";
  8022. If POSIZIONEO(OGGETTO)<0
  8023.  SOGGETTO= Not POSIZIONEO(OGGETTO)
  8024.  If Btst(0,TIPOO(OGGETTO))=True
  8025.   Print "posseduto dal personaggio";SOGGETTO;
  8026.   Print " nome>";NOMEP$(SOGGETTO)
  8027.  Else 
  8028.   Print "contenuto nell'oggetto";SOGGETTO;
  8029.   Print " nome>";
  8030.   If Btst(1,TIPOO(SOGGETTO))=True
  8031.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8032.   Else 
  8033.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8034.   End If 
  8035.  End If 
  8036. Else 
  8037.  Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  8038. End If 
  8039. If Btst(1,TIPOO(OGGETTO))=True
  8040.  PESOOGGETTO=PESORESTOCO(CATEGORIAO(OGGETTO))
  8041. Else 
  8042.  PESOOGGETTO=PESOCO(CATEGORIAO(OGGETTO))
  8043. End If 
  8044. Print "Peso>";Str$(PESOOGGETTO)-" ";" ";
  8045. If PESOOGGETTO=1
  8046.  Print "grammo"
  8047. Else 
  8048.  Print "grammi"
  8049. End If 
  8050. If Btst(3,TIPOO(OGGETTO))=True
  8051.  Print "Nascosto"
  8052. End If 
  8053. If Btst(1,TIPOO(OGGETTO))=True
  8054.  Print "Resto"
  8055. End If 
  8056. If Btst(2,TIPOO(OGGETTO))=True
  8057.  Print "Indossato dal personaggio";SOGGETTO;" nome>";NOMEP$(SOGGETTO)
  8058. End If 
  8059. End Proc
  8060. Procedure MOSTRAOGGETTOPERINSERIMENTO[P]
  8061. Repeat 
  8062.  Cls 
  8063.  Print "Nome del personaggio";P;">";NOMEP$(P)
  8064.  Print At(0,ULTIMALINEA-1);"Oggetto";CATEGORIA;">";NOMESCO$(CATEGORIA)
  8065.  Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli l'oggetto Spazio conferma",ULTIMALINEA]
  8066.  Repeat 
  8067.   TASTOPREMUTO$=Inkey$
  8068.  Until TASTOPREMUTO$<>""
  8069.  If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  8070.  If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  8071. Until TASTOPREMUTO$=" "
  8072. End Proc[CATEGORIA]
  8073. Procedure MOSTRAPERSONAGGIO
  8074. Cls 
  8075. If M0DIFICA=False
  8076.  Proc TIC[MESSAGGIO3$,0] : Print 
  8077. End If 
  8078. Print "Personaggio";PERSONAGGIO;
  8079. If PERSONAGGIO=0
  8080.  Print " (personaggio del giocatore):"
  8081. Else 
  8082.  Print ":"
  8083. End If 
  8084. Print "Nome>";NOMEP$(PERSONAGGIO)
  8085. Print "Posizione>";
  8086. If POSIZIONEP(PERSONAGGIO)<0
  8087.  SOGGETTO=-1-POSIZIONEP(PERSONAGGIO)
  8088.  If Btst(0,TIPOP(PERSONAGGIO))=True
  8089.   Print "trasportato dal personaggio";SOGGETTO;
  8090.   Print " nome>";NOMEP$(SOGGETTO)
  8091.  Else 
  8092.   Print "contenuto nell'oggetto";SOGGETTO;" nome>";
  8093.   If Btst(1,TIPOO(SOGGETTO))=True
  8094.    Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8095.   Else 
  8096.    Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8097.   End If 
  8098.  End If 
  8099. Else 
  8100.  If TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)>0
  8101.   Print "In cammino dal luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8102.   Print " al luogo";LUOGODIDESTINAZIONEP(PERSONAGGIO);" nome>";NOMEL$(LUOGODIDESTINAZIONEP(PERSONAGGIO))
  8103.  Else 
  8104.   E=POSIZIONEP(PERSONAGGIO)/$10000
  8105.   If E>0
  8106.    Print "Edificio";E-1;" nome>";NOMEE$(E-1)
  8107.    S=POSIZIONEP(PERSONAGGIO) mod $10000
  8108.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  8109.   Else 
  8110.    Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8111.   End If 
  8112.  End If 
  8113. End If 
  8114. Print "Costituzione>";Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  8115. If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8116. Print "Destrezza>";Str$(DESTREZZAP(PERSONAGGIO))-" ";" ";
  8117. If DESTREZZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8118. Print "Forza>";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  8119. If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8120. PESODELPERSONAGGIO=PESOP(PERSONAGGIO)+PESONETTOP(PERSONAGGIO)/1000
  8121. Print "Peso>";Str$(PESODELPERSONAGGIO)-" ";" ";
  8122. If PESODELPERSONAGGIO=1 Then Print "chilo" Else Print "chili"
  8123. Print "Peso netto>";
  8124. If PESONETTOP(PERSONAGGIO)>999
  8125.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)/1000
  8126.  Print Str$(PESOOEPDELP0)-" ";" ";
  8127.  If PESOOEPDELP0=1
  8128.   Print "chilo";
  8129.  Else 
  8130.   Print "chili";
  8131.  End If 
  8132.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO) mod 1000
  8133.  If PESOOEPDELP0>0
  8134.   Print " e";PESOOEPDELP0;" ";
  8135.   If PESOOEPDELP0=1
  8136.    Print "grammo"
  8137.   Else 
  8138.    Print "grammi"
  8139.   End If 
  8140.  Else 
  8141.   Print 
  8142.  End If 
  8143. Else 
  8144.  PESOOEPDELP0=PESONETTOP(PERSONAGGIO)
  8145.  Print Str$(PESOOEPDELP0)-" ";" ";
  8146.  If PESOOEPDELP0=1
  8147.   Print "grammo"
  8148.  Else 
  8149.   Print "grammi"
  8150.  End If 
  8151. End If 
  8152. Print "Resistenza>";Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  8153. If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8154. Print "Sesso>";
  8155. If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  8156. If PERSONAGGIO>0
  8157.  Print "Condizione>";
  8158.  If Btst(3,TIPOP(PERSONAGGIO))=True
  8159.   Print "Nemic";
  8160.  Else 
  8161.   Print "Amic";
  8162.  End If 
  8163.  If Btst(1,TIPOP(PERSONAGGIO))=True
  8164.   Print "a"
  8165.  Else 
  8166.   Print "o"
  8167.  End If 
  8168. End If 
  8169. Print "Soldi>";Str$(SOLDIP(PERSONAGGIO))-" ";" ";
  8170. If SOLDIP(PERSONAGGIO)=1 Then Print "soldo" Else Print "soldi"
  8171. If PERSONAGGIO>0
  8172.  Print "Inizio sonno>";
  8173.  _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  8174.  Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  8175.  M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  8176.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  8177.  Print "Durata sonno>";Str$(SONNOP(PERSONAGGIO))-" ";" ";
  8178.  If SONNOP(PERSONAGGIO)=1
  8179.   Print "minuto"
  8180.  Else 
  8181.   Print "minuti"
  8182.  End If 
  8183.  For A=0 To 7
  8184.   AZIONE=AZIONEP(A,PERSONAGGIO)
  8185.   PARA=PARAAAZIONEP(A,PERSONAGGIO)
  8186.   PARB=PARABAZIONEP(A,PERSONAGGIO)
  8187.   PARC=PARACAZIONEP(A,PERSONAGGIO)
  8188.   Cline : Print : Cline : Cmove ,-1
  8189.   Print "azione";A+1;">";
  8190.   Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  8191.   Proc FONDOSCHERMOEDITOR
  8192.  Next A
  8193. End If 
  8194. If Btst(2,TIPOP(PERSONAGGIO))=True
  8195.  Print "Sta dormendo"
  8196. End If 
  8197. End Proc
  8198. Procedure MOSTRAREGIONE
  8199. Cls 
  8200. If M0DIFICA=False
  8201.  Proc TIC[MESSAGGIO3$,0] : Print 
  8202. End If 
  8203. Print "Regione";REGIONE;":"
  8204. Print "Nome>";NOMER$(REGIONE)
  8205. End Proc
  8206. Procedure MOSTRASTANZA
  8207. Cls 
  8208. If M0DIFICA=False
  8209.  Proc TIC[MESSAGGIO3$,0] : Print 
  8210. End If 
  8211. Print "Edificio";EDIFICIO;":"
  8212. Print "Stanza";STANZA;":"
  8213. Print "Nome>";NOMES$(STANZA,EDIFICIO)
  8214. DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  8215. Print "Direzione Nord     >";
  8216. E=DREZIONE/$10000
  8217. If E>0
  8218.  S=DREZIONE mod $10000
  8219.  Print "edificio";E;" stanza";S
  8220. Else 
  8221.  DREZIONE=DREZIONE mod $10000
  8222.  If DREZIONE<$FFFF
  8223.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8224.  Else 
  8225.   Print "nessun luogo"
  8226.  End If 
  8227. End If 
  8228. DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  8229. Print "Direzione NordEst  >";
  8230. E=DREZIONE/$10000
  8231. If E>0
  8232.  S=DREZIONE mod $10000
  8233.  Print "edificio";E;" stanza";S
  8234. Else 
  8235.  DREZIONE=DREZIONE mod $10000
  8236.  If DREZIONE<$FFFF
  8237.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8238.  Else 
  8239.   Print "nessun luogo"
  8240.  End If 
  8241. End If 
  8242. DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  8243. Print "Direzione Est      >";
  8244. E=DREZIONE/$10000
  8245. If E>0
  8246.  S=DREZIONE mod $10000
  8247.  Print "edificio";E;" stanza";S
  8248. Else 
  8249.  DREZIONE=DREZIONE mod $10000
  8250.  If DREZIONE<$FFFF
  8251.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8252.  Else 
  8253.   Print "nessun luogo"
  8254.  End If 
  8255. End If 
  8256. DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  8257. Print "Direzione SudEst   >";
  8258. E=DREZIONE/$10000
  8259. If E>0
  8260.  S=DREZIONE mod $10000
  8261.  Print "edificio";E;" stanza";S
  8262. Else 
  8263.  DREZIONE=DREZIONE mod $10000
  8264.  If DREZIONE<$FFFF
  8265.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8266.  Else 
  8267.   Print "nessun luogo"
  8268.  End If 
  8269. End If 
  8270. DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  8271. Print "Direzione Sud      >";
  8272. E=DREZIONE/$10000
  8273. If E>0
  8274.  S=DREZIONE mod $10000
  8275.  Print "edificio";E;" stanza";S
  8276. Else 
  8277.  DREZIONE=DREZIONE mod $10000
  8278.  If DREZIONE<$FFFF
  8279.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8280.  Else 
  8281.   Print "nessun luogo"
  8282.  End If 
  8283. End If 
  8284. DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  8285. Print "Direzione SudOvest >";
  8286. E=DREZIONE/$10000
  8287. If E>0
  8288.  S=DREZIONE mod $10000
  8289.  Print "edificio";E;" stanza";S
  8290. Else 
  8291.  DREZIONE=DREZIONE mod $10000
  8292.  If DREZIONE<$FFFF
  8293.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8294.  Else 
  8295.   Print "nessun luogo"
  8296.  End If 
  8297. End If 
  8298. DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  8299. Print "Direzione Ovest    >";
  8300. E=DREZIONE/$10000
  8301. If E>0
  8302.  S=DREZIONE mod $10000
  8303.  Print "edificio";E;" stanza";S
  8304. Else 
  8305.  DREZIONE=DREZIONE mod $10000
  8306.  If DREZIONE<$FFFF
  8307.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8308.  Else 
  8309.   Print "nessun luogo"
  8310.  End If 
  8311. End If 
  8312. DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  8313. Print "Direzione NordOvest>";
  8314. E=DREZIONE/$10000
  8315. If E>0
  8316.  S=DREZIONE mod $10000
  8317.  Print "edificio";E;" stanza";S
  8318. Else 
  8319.  DREZIONE=DREZIONE mod $10000
  8320.  If DREZIONE<$FFFF
  8321.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8322.  Else 
  8323.   Print "nessun luogo"
  8324.  End If 
  8325. End If 
  8326. DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  8327. Print "Direzione Sopra    >";
  8328. E=DREZIONE/$10000
  8329. If E>0
  8330.  S=DREZIONE mod $10000
  8331.  Print "edificio";E;" stanza";S
  8332. Else 
  8333.  DREZIONE=DREZIONE mod $10000
  8334.  If DREZIONE<$FFFF
  8335.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8336.  Else 
  8337.   Print "nessun luogo"
  8338.  End If 
  8339. End If 
  8340. DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  8341. Print "Direzione Sotto    >";
  8342. E=DREZIONE/$10000
  8343. If E>0
  8344.  S=DREZIONE mod $10000
  8345.  Print "edificio";E;" stanza";S
  8346. Else 
  8347.  DREZIONE=DREZIONE mod $10000
  8348.  If DREZIONE<$FFFF
  8349.   Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8350.  Else 
  8351.   Print "nessun luogo"
  8352.  End If 
  8353. End If 
  8354. SOLDINELLASTANZA=SOLDIS(STANZA,EDIFICIO)
  8355. If SOLDINELLASTANZA>0
  8356.  Print Str$(SOLDINELLASTANZA)-" ";" ";
  8357.  If SOLDINELLASTANZA=1
  8358.   Print "soldo"
  8359.  Else 
  8360.   Print "soldi"
  8361.  End If 
  8362. End If 
  8363. End Proc
  8364. Procedure MUOVITI
  8365. If F0RZAP(0)+PESOP(0)/10>=PESONETTOP(0)/1000
  8366.  EDIFICIODOVESITROVAILPERSONAGGIO0=POSIZIONEP(0)/$10000
  8367.  If TEMP0DIATTRAVERSAMENTOP(0)=0 or EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8368.   Locate 0,ULTIMALINEA : Input "Dove vuoi andare ?>";DREZIONE$; : Curs Off 
  8369.   DREZIONE$=Lower$(DREZIONE$)
  8370.   If DREZIONE$<>""
  8371.    For A=0 To 9
  8372.     If DREZIONE$=Lower$(DREZIONEL$(A)) or DREZIONE$=Lower$(DREZIONE$(A))
  8373.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8374.       S=POSIZIONEP(0) mod $10000
  8375.       If DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0) mod $10000<$FFFF
  8376.        E=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)/$10000
  8377.        Exit 
  8378.       Else 
  8379.        DREZIONE$=Lower$(DREZIONE$(A))
  8380.       End If 
  8381.      Else 
  8382.       If DREZIONEL(A,POSIZIONEP(0)) mod $10000<$FFFF
  8383.        E=DREZIONEL(A,POSIZIONEP(0))/$10000
  8384.        Exit 
  8385.       Else 
  8386.        DREZIONE$=Lower$(DREZIONE$(A))
  8387.       End If 
  8388.      End If 
  8389.     End If 
  8390.    Next A
  8391.    If A<10
  8392.     If E>0
  8393.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8394.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8395.      Else 
  8396.       POSIZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8397.      End If 
  8398.     Else 
  8399.      If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8400.       POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8401.      Else 
  8402.       LUOGODIDESTINAZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8403.       CAMMINOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))
  8404.       If CAMMINOP(0)=0
  8405.        POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8406.        DREZIONEPRESAP(0)=-1
  8407.        DREZIONEOPPOSTAAQUELLAPRESAP(0)=-1
  8408.       Else 
  8409.        TEMP0DIATTRAVERSAMENTOP(0)=CAMMINOP(0)
  8410.        DREZIONEPRESAP(0)=A
  8411.        If DREZIONEPRESAP(0)=9
  8412.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=8
  8413.        Else If DREZIONEPRESAP(0)=8
  8414.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=9
  8415.        Else If DREZIONEPRESAP(0)<8 and DREZIONEPRESAP(0)>3
  8416.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)-4
  8417.        Else 
  8418.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)+4
  8419.        End If 
  8420.       End If 
  8421.      End If 
  8422.     End If 
  8423.     COMPIUTAAZIONE=1
  8424.     Print At(0,ULTIMALINEA);"Hai deciso di andare ";
  8425.     If A>7
  8426.      Print Lower$(DREZIONE$(A));
  8427.     Else 
  8428.      Print "a ";Lower$(DREZIONE$(A));
  8429.     End If 
  8430.    Else 
  8431.     A=False
  8432.     For B=0 To 9
  8433.      If DREZIONE$=Lower$(DREZIONEL$(B)) or DREZIONE$=Lower$(DREZIONE$(B))
  8434.       A=True
  8435.      End If 
  8436.     Next B
  8437.     If A=True
  8438.      Print At(0,ULTIMALINEA);"Non puoi andare ";
  8439.      If DREZIONE$="sopra" or DREZIONE$="sotto"
  8440.       Print DREZIONE$;
  8441.      Else 
  8442.       Print "a ";DREZIONE$;
  8443.      End If 
  8444.      Print " ";
  8445.      If _MUSICA=False
  8446.       Bell 1
  8447.      End If 
  8448.     Else 
  8449.      Print At(0,ULTIMALINEA);"Non so cosa sia ";DREZIONE$;"   ";
  8450.      If _MUSICA=False
  8451.       Bell 1
  8452.      End If 
  8453.     End If 
  8454.    End If 
  8455.    Proc _ASPETTA
  8456.   End If 
  8457.  Else 
  8458.   Print At(0,ULTIMALINEA);"Vuoi andare avanti (a) o tornare indietro (i) ?";
  8459.   SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  8460.   If SCELTA$="a"
  8461.    Dec TEMP0DIATTRAVERSAMENTOP(0)
  8462.    If TEMP0DIATTRAVERSAMENTOP(0)=0
  8463.     POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8464.     DREZIONEPRESAP(0)=-1
  8465.     Locate 0,ULTIMALINEA : Cline : Print "Sei arrivato a ";NOMEL$(POSIZIONEP(0));
  8466.    Else 
  8467.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di andare avanti";
  8468.    End If 
  8469.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8470.   Else If SCELTA$="i"
  8471.    Inc TEMP0DIATTRAVERSAMENTOP(0)
  8472.    If TEMP0DIATTRAVERSAMENTOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))+1
  8473.     Locate 0,ULTIMALINEA : Cline : Print "Sei tornato a ";NOMEL$(POSIZIONEP(0));
  8474.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8475.    Else 
  8476.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di tornare indietro";
  8477.    End If 
  8478.    COMPIUTAAZIONE=1 : Proc _ASPETTA
  8479.   End If 
  8480.  End If 
  8481. Else 
  8482.  Print At(0,ULTIMALINEA);"Sei troppo pesante, non puoi muoverti";
  8483.  If _MUSICA=False
  8484.   Bell 1
  8485.  End If 
  8486.  Proc _ASPETTA
  8487. End If 
  8488. End Proc
  8489. Procedure MUOVITIP[AZIONE,P]
  8490. If PERSONAGGIOVISIBILEP(P)=True Then PERSONAGGIOVISIBILE=True
  8491. If Btst(2,TIPOP(0))=False Then PERSONAGGIO0SVEGLIO=True
  8492. If F0RZAP(P)+PESOP(P)/10>=PESONETTOP(P)/1000
  8493.  EDIFICIODOVESITROVAILPERSONAGGIOP=POSIZIONEP(P)/$10000
  8494.  If TEMP0DIATTRAVERSAMENTOP(P)=0 or EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8495.   Do 
  8496.    DREZIONE=Rnd(9)
  8497.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8498.     S=POSIZIONEP(P) mod $10000
  8499.     E=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)/$10000
  8500.     Exit If DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP) mod $10000<$FFFF
  8501.    Else 
  8502.     E=DREZIONEL(DREZIONE,POSIZIONEP(P))/$10000
  8503.     Exit If DREZIONEL(DREZIONE,POSIZIONEP(P)) mod $10000<$FFFF
  8504.    End If 
  8505.   Loop 
  8506.   If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  8507.    Print NOMEP$(P);" sta andando ";
  8508.    If DREZIONE>7
  8509.     Print Lower$(DREZIONE$(DREZIONE))
  8510.    Else 
  8511.     Print "a ";Lower$(DREZIONE$(DREZIONE))
  8512.    End If 
  8513.    Proc FONDOSCHERMOGIOCO
  8514.   End If 
  8515.   If E>0
  8516.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8517.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8518.    Else 
  8519.     POSIZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8520.    End If 
  8521.    Proc PERSONAGGIOVISIBILE[P]
  8522.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8523.     Print NOMEP$(P);" ï¿½ arrivato"
  8524.    End If 
  8525.   Else 
  8526.    If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8527.     POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8528.    Else 
  8529.     LUOGODIDESTINAZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8530.     CAMMINOP(P)=PARATIPOL(TIPOL(POSIZIONEP(P)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(P)))
  8531.     If CAMMINOP(P)=0
  8532.      POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8533.      DREZIONEPRESAP(P)=-1
  8534.      DREZIONEOPPOSTAAQUELLAPRESAP(P)=-1
  8535.     Else 
  8536.      TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)
  8537.      DREZIONEPRESAP(P)=DREZIONE
  8538.      If DREZIONEPRESAP(P)=9
  8539.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=8
  8540.      Else If DREZIONEPRESAP(P)=8
  8541.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=9
  8542.      Else If DREZIONEPRESAP(P)<8 and DREZIONEPRESAP(P)>3
  8543.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)-4
  8544.      Else 
  8545.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)+4
  8546.      End If 
  8547.     End If 
  8548.    End If 
  8549.    Proc PERSONAGGIOVISIBILE[P]
  8550.    If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8551.     Print NOMEP$(P);" ï¿½ arrivato"
  8552.    End If 
  8553.   End If 
  8554.  Else 
  8555. 'Fare DREZIONE=Rnd(1) per far muovere avanti o indietro i personaggi 
  8556.   DREZIONE=1
  8557.   If DREZIONE=1
  8558.    Dec TEMP0DIATTRAVERSAMENTOP(P)
  8559.    If TEMP0DIATTRAVERSAMENTOP(P)=0
  8560.     POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8561.     DREZIONEPRESAP(P)=-1
  8562.     If PERSONAGGIO0SVEGLIO=True
  8563.      If PERSONAGGIOVISIBILE=True
  8564.       Print NOMEP$(P);" sta andando avanti"
  8565.       Proc FONDOSCHERMOGIOCO
  8566.      Else 
  8567.       Proc PERSONAGGIOVISIBILE[P]
  8568.       If PERSONAGGIOVISIBILEP(P)=True
  8569.        Print NOMEP$(P);" ï¿½ arrivato"
  8570.       End If 
  8571.       Proc FONDOSCHERMOGIOCO
  8572.      End If 
  8573.     End If 
  8574.    Else 
  8575.     If PERSONAGGIO0SVEGLIO=True
  8576.      If PERSONAGGIOVISIBILE=True
  8577.       Print NOMEP$(P);" sta andando avanti"
  8578.       Proc FONDOSCHERMOGIOCO
  8579.      Else 
  8580.       Proc PERSONAGGIOVISIBILE[P]
  8581.       If PERSONAGGIOVISIBILEP(P)=True
  8582.        Print NOMEP$(P);" ï¿½ arrivato"
  8583.       End If 
  8584.       Proc FONDOSCHERMOGIOCO
  8585.      End If 
  8586.     End If 
  8587.    End If 
  8588.   Else 
  8589.    Inc TEMP0DIATTRAVERSAMENTOP(P)
  8590.    If TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)+1
  8591.     TEMP0DIATTRAVERSAMENTOP(0)=0
  8592.     DREZIONEPRESAP(P)=-1
  8593.     If PERSONAGGIO0SVEGLIO=True
  8594.      If PERSONAGGIOVISIBILE=True
  8595.       Print NOMEP$(P);" sta tornando indietro"
  8596.       Proc FONDOSCHERMOGIOCO
  8597.      Else 
  8598.       Proc PERSONAGGIOVISIBILE[P]
  8599.       If PERSONAGGIOVISIBILEP(P)=True
  8600.        Print NOMEP$(P);" ï¿½ arrivato"
  8601.       End If 
  8602.       Proc FONDOSCHERMOGIOCO
  8603.      End If 
  8604.     End If 
  8605.    Else 
  8606.     If PERSONAGGIO0SVEGLIO=True
  8607.      If PERSONAGGIOVISIBILE=True
  8608.       Print NOMEP$(P);" sta tornando indietro"
  8609.       Proc FONDOSCHERMOGIOCO
  8610.      Else 
  8611.       Proc PERSONAGGIOVISIBILE[P]
  8612.       If PERSONAGGIOVISIBILEP(P)=True
  8613.        Print NOMEP$(P);" ï¿½ arrivato"
  8614.       End If 
  8615.       Proc FONDOSCHERMOGIOCO
  8616.      End If 
  8617.     End If 
  8618.    End If 
  8619.   End If 
  8620.  End If 
  8621. Else 
  8622.  If PERSONAGGIOVISIBILE=True
  8623.   Print NOMEP$(P);" ï¿½ troppo pesante, non pu� muoversi"
  8624.   Proc FONDOSCHERMOGIOCO
  8625.  End If 
  8626. End If 
  8627. End Proc
  8628. Procedure NEMICI[P]
  8629. DIFESA=-1
  8630. For A=0 To NUMEROO
  8631.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  8632.   If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  8633.    DIFESA=CATEGORIAO(A) : VLOREDIFESA=PARATIPOCO(DIFESA)
  8634.    Exit 
  8635.   End If 
  8636.  End If 
  8637. Next A
  8638. OGGETTOOFFENSIVO=-1
  8639. For A=0 To NUMEROO
  8640.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and Btst(6,TIPOCO(CATEGORIAO(A)))=True
  8641.   VLORE1OFFENSIVITA=PARATIPOCO(CATEGORIAO(A))
  8642.   If VLORE1OFFENSIVITA>VLORE0OFFENSIVITA
  8643.    OGGETTOOFFENSIVO=CATEGORIAO(A) : VLORE0OFFENSIVITA=VLORE1OFFENSIVITA
  8644.   End If 
  8645.  End If 
  8646. Next A
  8647. NEMICI=Min(10,Rnd(TEMP0TRASCORSO/1440)+1)
  8648. NOMENEMICI=Rnd(27)
  8649. If P=0 Then Cls 
  8650. Gosub NEMICI
  8651. Gosub SCELTASUINEMICI
  8652. Inc DESTREZZAP(P)
  8653. Pop Proc
  8654. COMBATTIMENTOCONINEMICI:
  8655. NUMEROCOMBATTIMENTO=1
  8656. Repeat 
  8657.  If P=0
  8658.   Cls 
  8659.   Proc TIC["********** Combattimento numero"+Str$(NUMEROCOMBATTIMENTO)+" **********",0]
  8660.   Print 
  8661.  End If 
  8662.  Gosub TURNODEINEMICI
  8663.  If OGGETTOOFFENSIVO>-1
  8664.   OFFENSIVITA=PARATIPOCO(OGGETTOOFFENSIVO)*5
  8665.  End If 
  8666.  Add OFFENSIVITA,DESTREZZAP(P)
  8667.  Add OFFENSIVITA,F0RZAP(P)
  8668.  OFFENSIVITA=OFFENSIVITA/100
  8669.  Proc LIMITI[OFFENSIVITA,1,NEMICI] : OFFENSIVITA=Param
  8670.  If P=0
  8671.   Print "Hai ucciso";OFFENSIVITA;" ";
  8672.   If OFFENSIVITA=1
  8673.    Print NOMESN$(NOMENEMICI);
  8674.   Else 
  8675.    Print NOMEPN$(NOMENEMICI);
  8676.   End If 
  8677.   Print " ";
  8678.   If OGGETTOOFFENSIVO>-1
  8679.    Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8680.   Else 
  8681.    Print "a mani nude";
  8682.   End If 
  8683.   Print "."
  8684.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8685.   Add NEMICI,-OFFENSIVITA
  8686.   If NEMICI=0
  8687.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8688.   Else 
  8689.    Gosub SCELTADOPOILCOMBATTIMENTO
  8690.    Inc NUMEROCOMBATTIMENTO
  8691.   End If 
  8692.  Else 
  8693.   If PERSONAGGIOVISIBILEP(P)=True
  8694.    Print NOMEP$(P);" ha ucciso";OFFENSIVITA;" ";
  8695.    If OFFENSIVITA=1
  8696.     Print NOMESN$(NOMENEMICI);
  8697.    Else 
  8698.     Print NOMEPN$(NOMENEMICI);
  8699.    End If 
  8700.    Print " ";
  8701.    If OGGETTOOFFENSIVO>-1
  8702.     Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8703.    Else 
  8704.     Print "a mani nude";
  8705.    End If 
  8706.    Print "."
  8707.    Proc FONDOSCHERMOGIOCO
  8708.   End If 
  8709.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8710.   Add NEMICI,-OFFENSIVITA
  8711.   If NEMICI>0
  8712.    Gosub SCELTADOPOILCOMBATTIMENTO
  8713.    Inc NUMEROCOMBATTIMENTO
  8714.   End If 
  8715.  End If 
  8716. Until NEMICI=0
  8717. Return 
  8718. NEMICI:
  8719. If P=0
  8720.  If INEMICITISVEGLIANO=True
  8721.   If NEMICI=1
  8722.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ha";
  8723.   Else 
  8724.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti hanno";
  8725.   End If 
  8726.   Print " svegliato."
  8727.  Else 
  8728.   If NEMICI=1
  8729.    Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ostacola";
  8730.   Else 
  8731.    Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti ostacolano";
  8732.   End If 
  8733.   Print " il cammino."
  8734.  End If 
  8735. Else 
  8736.  If PERSONAGGIOVISIBILEP(P)=True
  8737.   If INEMICISVEGLIANOPERSONAGGIOP=True
  8738.    If NEMICI=1
  8739.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ha svegliato ";NOMEP$(P)
  8740.    Else 
  8741.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che hanno svegliato ";NOMEP$(P)
  8742.    End If 
  8743.   Else 
  8744.    If NEMICI=1
  8745.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ostacola il cammino a ";NOMEP$(P)
  8746.    Else 
  8747.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" ostacolano il cammino a ";NOMEP$(P)
  8748.    End If 
  8749.   End If 
  8750.   Proc FONDOSCHERMOGIOCO
  8751.  End If 
  8752. End If 
  8753. Return 
  8754. MOSTRALARESISTENZADELPERSONAGGIOP:
  8755. If P=0
  8756.  RESISTENZAP(0)=Max(RESISTENZAP(0),0)
  8757.  Print "La tua resistenza ï¿½ a";RESISTENZAP(0);" punt";
  8758.  If RESISTENZAP(0)=1
  8759.   Print "o"
  8760.  Else 
  8761.   Print "i"
  8762.  End If 
  8763. Else 
  8764.  If PERSONAGGIOVISIBILEP(P)=True
  8765.   Print "La resistenza di ";NOMEP$(P);" ï¿½ a";RESISTENZAP(0);" punt";
  8766.   If RESISTENZAP(0)=1
  8767.    Print "o"
  8768.   Else 
  8769.    Print "i"
  8770.   End If 
  8771.   Proc FONDOSCHERMOGIOCO
  8772.  End If 
  8773. End If 
  8774. Return 
  8775. SCELTASUINEMICI:
  8776. If RESISTENZAP(P)=0 Then Pop 
  8777. If P=0
  8778.  Repeat 
  8779.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8780.   SCELTA$=Input$(1)
  8781.  Until SCELTA$="c" or SCELTA$="f"
  8782.  If SCELTA$="c"
  8783.   Gosub COMBATTIMENTOCONINEMICI
  8784.  Else 
  8785.   Gosub TENTALAFUGADAINEMICI
  8786.  End If 
  8787.  If COMBATTIMENTOCONINEMICI=True
  8788.   Gosub COMBATTIMENTOCONINEMICI
  8789.  End If 
  8790. Else 
  8791.  SCELTA=Rnd(1)
  8792.  If SCELTA=1
  8793.   Gosub COMBATTIMENTOCONINEMICI
  8794.  Else 
  8795.   Gosub TENTALAFUGADAINEMICI
  8796.  End If 
  8797. End If 
  8798. Return 
  8799. SCELTADOPOILCOMBATTIMENTO:
  8800. If RESISTENZAP(P)=0 Then Pop 
  8801. If P=0
  8802.  Repeat 
  8803.   Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8804.   SCELTA$=Input$(1)
  8805.  Until SCELTA$="c" or SCELTA$="f"
  8806.  If SCELTA$="f"
  8807.   Gosub TENTALAFUGADAINEMICI
  8808.  End If 
  8809. Else 
  8810.  SCELTA=Rnd(1)
  8811.  If SCELTA=1
  8812.   Gosub TENTALAFUGADAINEMICI
  8813.  End If 
  8814. End If 
  8815. Return 
  8816. TENTALAFUGADAINEMICI:
  8817. DESTREZZA=Rnd(99)+1
  8818. If P=0
  8819.  If DESTREZZA<=DESTREZZAP(0)
  8820.   Cls 
  8821.   Print "La tua destrezza non ï¿½ stata sufficiente per evitare lo scontro!"
  8822.   Gosub TURNODEINEMICI
  8823.   Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8824.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8825.   COMBATTIMENTOCONINEMICI=True
  8826.  Else 
  8827.   Cls 
  8828.   Print "Grazie alla tua destrezza hai evitato lo scontro."
  8829.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8830.   Pop Proc
  8831.  End If 
  8832. Else 
  8833.  If PERSONAGGIOVISIBILEP(P)=True
  8834.   If DESTREZZA<=DESTREZZAP(P)
  8835.    Print "La destrezza di ";NOMEP$(P);" non ï¿½ stata sufficiente per evitare lo scontro!"
  8836.    Gosub TURNODEINEMICI
  8837.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8838.    COMBATTIMENTOCONINEMICI=True
  8839.   Else 
  8840.    Print "Grazie alla sua destrezza ";NOMEP$(P);" ha evitato lo scontro."
  8841.    Pop Proc
  8842.   End If 
  8843.   Proc FONDOSCHERMOGIOCO
  8844.  End If 
  8845. End If 
  8846. Return 
  8847. TURNODEINEMICI:
  8848. If P=0
  8849.  For A=1 To NEMICI
  8850.   NEMICO$=NOMESN$(NOMENEMICI)
  8851.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8852.   Print NEMICO$;A;
  8853.   DESTREZZA=Rnd(99)+1
  8854.   If DESTREZZA<=DESTREZZAP(0)
  8855.    Print " ha cercato di colpirti, ma tu hai";
  8856.    M0DODESTREZZA=Rnd(1)
  8857.    If M0DODESTREZZA=1
  8858.     Print " schivato";
  8859.    Else 
  8860.     Print " parato";
  8861.    End If 
  8862.    Print " il colpo."
  8863.   Else 
  8864.    If DIFESA>-1
  8865.     DIFESAVALIDA=Rnd(1)
  8866.     If DIFESAVALIDA=1
  8867.      Print " ti ha colpito, ma 1 ";NOMESCO$(DIFESA);" ti ha difes";
  8868.      If Btst(1,TIPOP(0))=True
  8869.       Print "a";
  8870.      Else 
  8871.       Print "o";
  8872.      End If 
  8873.      Print "."
  8874.     Else 
  8875.      Print " ti ha colpito e ti ha fatto una ferita!"
  8876.      FERITA=-(Rnd(2)+1)
  8877.      Add RESISTENZAP(0),FERITA
  8878.     End If 
  8879.    Else 
  8880.     Print " ti ha colpito e ti ha fatto una ferita!"
  8881.     FERITA=-(Rnd(2)+1)
  8882.     Add RESISTENZAP(0),FERITA
  8883.    End If 
  8884.   End If 
  8885.  Next A
  8886. Else 
  8887.  For A=1 To NEMICI
  8888.   NEMICO$=NOMESN$(NOMENEMICI)
  8889.   Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8890.   Print NEMICO$;A;
  8891.   DESTREZZA=Rnd(99)+1
  8892.   If DESTREZZA<=DESTREZZAP(P)
  8893.    If PERSONAGGIOVISIBILEP(P)=True
  8894.     Print " ha cercato di colpire ";NOMEP$(P);", ma ";
  8895.     If Btst(1,TIPOP(0))=True
  8896.      Print "lei";
  8897.     Else 
  8898.      Print "lui";
  8899.     End If 
  8900.     Print " ha ";
  8901.     M0DODESTREZZA=Rnd(1)
  8902.     If M0DODESTREZZA=1
  8903.      Print "schivato";
  8904.     Else 
  8905.      Print "parato";
  8906.     End If 
  8907.     Print " il colpo."
  8908.    End If 
  8909.   Else 
  8910.    If DIFESA>-1
  8911.     DIFESAVALIDA=Rnd(1)
  8912.     If DIFESAVALIDA=1
  8913.      If PERSONAGGIOVISIBILEP(P)=True
  8914.       Print " ha colpito ";NOMEP$(P);", ma 1 ";NOMESCO$(DIFESA);" l'ha difes";
  8915.       If Btst(1,TIPOP(0))=True
  8916.        Print "a";
  8917.       Else 
  8918.        Print "o";
  8919.       End If 
  8920.       Print "."
  8921.      End If 
  8922.     Else 
  8923.      If PERSONAGGIOVISIBILEP(P)=True
  8924.       Print " ha colpito ";NOMEP$(P);" e ";
  8925.       If Btst(1,TIPOP(0))=True
  8926.        Print "le";
  8927.       Else 
  8928.        Print "gli";
  8929.       End If 
  8930.       Print " ha fatto una ferita!"
  8931.      End If 
  8932.      FERITA=-(Rnd(2)+1)
  8933.      Add RESISTENZAP(0),FERITA
  8934.     End If 
  8935.    Else 
  8936.     If PERSONAGGIOVISIBILEP(P)=True
  8937.      Print " ha colpito ";NOMEP$(P);" e ";
  8938.      If Btst(1,TIPOP(0))=True
  8939.       Print "le";
  8940.      Else 
  8941.       Print "gli";
  8942.      End If 
  8943.      Print " ha fatto una ferita!"
  8944.     End If 
  8945.     FERITA=-(Rnd(2)+1)
  8946.     Add RESISTENZAP(0),FERITA
  8947.    End If 
  8948.   End If 
  8949.   Proc FONDOSCHERMOGIOCO
  8950.  Next A
  8951. End If 
  8952. Return 
  8953. End Proc
  8954. Procedure OGGETTI[M0DO]
  8955. For A=0 To NUMEROCO
  8956.  OGGETTINELLUOGO(A)=0
  8957.  RESTINELLUOGO(A)=0
  8958. Next A
  8959. For A=0 To NUMEROO
  8960.  If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  8961.   If Btst(1,TIPOO(A))=True
  8962.    Inc RESTINELLUOGO(CATEGORIAO(A))
  8963.   Else 
  8964.    Inc OGGETTINELLUOGO(CATEGORIAO(A))
  8965.   End If 
  8966.  End If 
  8967. Next A
  8968. If M0DO=True
  8969.  For A=0 To NUMEROCO
  8970.   If OGGETTINELLUOGO(A)>0
  8971.    OGGETTIVISIBILI=True
  8972.   End If 
  8973.   If RESTINELLUOGO(A)>0
  8974.    OGGETTIVISIBILI=True
  8975.   End If 
  8976.  Next A
  8977.  SOLDINELLUOGO=SOLDIL(POSIZIONEP(0))
  8978.  If SOLDINELLUOGO>0
  8979.   OGGETTIVISIBILI=True
  8980.  End If 
  8981.  If OGGETTIVISIBILI=True
  8982.   Print "Oggetti visibili>"
  8983.   Proc FONDOSCHERMOGIOCO
  8984.   For A=0 To NUMEROCO
  8985.    If OGGETTINELLUOGO(A)>0
  8986.     Print Str$(OGGETTINELLUOGO(A))-" ";" ";
  8987.     If OGGETTINELLUOGO(A)=1
  8988.      Print NOMESCO$(A)
  8989.     Else 
  8990.      Print NOMEPCO$(A)
  8991.     End If 
  8992.     Proc FONDOSCHERMOGIOCO
  8993.    End If 
  8994.    If RESTINELLUOGO(A)>0
  8995.     Print Str$(RESTINELLUOGO(A))-" ";" ";
  8996.     If RESTINELLUOGO(A)=1
  8997.      Print NOMESRO$(A)
  8998.     Else 
  8999.      Print NOMEPRO$(A)
  9000.     End If 
  9001.    Proc FONDOSCHERMOGIOCO
  9002.    End If 
  9003.   Next A
  9004.   If SOLDINELLUOGO>0
  9005.    Print Str$(SOLDINELLUOGO)-" ";" ";
  9006.    If SOLDINELLUOGO=1
  9007.     Print "soldo"
  9008.    Else 
  9009.     Print "soldi"
  9010.    End If 
  9011.    Proc FONDOSCHERMOGIOCO
  9012.   End If 
  9013.  Else 
  9014.   Print "Nessun oggetto visibile"
  9015.  End If 
  9016. End If 
  9017. End Proc
  9018. Procedure OGGETTOOPERSONAGGIOSUCUIUSARE[O]
  9019. For A=0 To NUMEROCO
  9020.  If OGGETTINELLUOGO(A)>0
  9021.   Inc CATEGORIEOGGETTI
  9022.  End If 
  9023.  If RESTINELLUOGO(A)>0
  9024.   Inc CATEGORIEOGGETTI
  9025.  End If 
  9026. Next A
  9027. For A=0 To NUMEROP
  9028.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9029.   Inc PERSONAGGI
  9030.  End If 
  9031. Next A
  9032. If CATEGORIEOGGETTI>0 and PERSONAGGI>0
  9033.  Print At(0,ULTIMALINEA);"Vuoi usare su un oggetto o su un personaggio (o/p) ?>";
  9034.  OGGETTOOPERSONAGGIO$=Input$(1)
  9035.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9036.  If OGGETTOOPERSONAGGIO$="o"
  9037.   Proc USASUUNOGGETTO[O]
  9038.  Else If OGGETTOOPERSONAGGIO$="p"
  9039.   Proc USASUUNPERSONAGGIO[O]
  9040.   End If 
  9041. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0
  9042.  Proc USASUUNOGGETTO[O]
  9043. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0
  9044.  Proc USASUUNPERSONAGGIO[O]
  9045. Else 
  9046.  Print At(0,ULTIMALINEA);"Non ci sono oggetti o personaggi su cui usare 1 ";
  9047.  If Btst(1,TIPOO(O))=True
  9048.   Print NOMESRO$(CATEGORIAO(O));
  9049.  Else 
  9050.   Print NOMESCO$(CATEGORIAO(O));
  9051.  End If 
  9052.  If _MUSICA=False
  9053.   Bell 1
  9054.  End If 
  9055.  Proc _ASPETTA
  9056. End If 
  9057. End Proc
  9058. Procedure PERSONAGGI
  9059. For A=1 To NUMEROP
  9060.  Proc PERSONAGGIOVISIBILE[A]
  9061.  If PERSONAGGIOVISIBILEP(A)=True Then PERSONAGGIVISIBILI=True
  9062. Next A
  9063. If PERSONAGGIVISIBILI=True
  9064.  Print "Personaggi visibili>"
  9065.  Proc FONDOSCHERMOGIOCO
  9066.  For A=1 To NUMEROP
  9067.   If PERSONAGGIOVISIBILEP(A)=True
  9068.    If RESISTENZAP(A)=0
  9069.     Print "Il cadavere di ";NOMEP$(A);
  9070.     If Btst(1,TIPOP(A))=True
  9071.      Print "@"
  9072.     Else 
  9073.      Print 
  9074.     End If 
  9075.    Else 
  9076.     Print NOMEP$(A);
  9077.     If Btst(1,TIPOP(A))=True
  9078.      Print "@";
  9079.     End If 
  9080.     If Btst(2,TIPOP(A))=True
  9081.      Print " dormiente"
  9082.     Else 
  9083.      Print 
  9084.     End If 
  9085.    End If 
  9086.   End If 
  9087.  Proc FONDOSCHERMOGIOCO
  9088.  Next A
  9089. Else 
  9090.  Print "Nessun personaggio visibile"
  9091. End If 
  9092. End Proc
  9093. Procedure PERSONAGGIORICEVENTE[TIPO$,NUMERO]
  9094. For A=1 To NUMEROP
  9095.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIPRESENTI
  9096. Next A
  9097. If PERSONAGGIPRESENTI>1
  9098.  Locate 0,ULTIMALINEA : Input "A chi vuoi dare ?>";PERSONAGGIO$;
  9099.  Curs Off 
  9100.  If PERSONAGGIO$<>""
  9101.   For A=1 To NUMEROP
  9102.    If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A))
  9103.     If TIPO$="O"
  9104.      POSIZIONEO(NUMERO)=-1-A
  9105.      If Btst(1,TIPOO(NUMERO))=True
  9106.       Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9107.       Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9108.       Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9109.      Else 
  9110.       Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9111.       Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9112.       Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9113.       Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9114.      End If 
  9115.      If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9116.       For B=0 To NUMEROO
  9117.        If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9118.         If Btst(1,TIPOO(B))=True
  9119.          Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(B))
  9120.          Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(B))
  9121.         Else 
  9122.          Add PESONETTOP(0),-PESOCO(CATEGORIAO(B))
  9123.          Add PESONETTOP(A),PESOCO(CATEGORIAO(B))
  9124.         End If 
  9125.        End If 
  9126.       Next B
  9127.       For B=1 To NUMEROP
  9128.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9129.         Add PESONETTOP(0),-PESOP(B)*1000
  9130.         Add PESONETTOP(0),-PESONETTOP(B)
  9131.         Add PESONETTOP(A),PESOP(B)*1000
  9132.         Add PESONETTOP(A),PESONETTOP(B)
  9133.        End If 
  9134.       Next B
  9135.      End If 
  9136.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9137.      Print "Hai deciso di dare 1 ";
  9138.      If Btst(1,TIPOO(NUMERO))=True
  9139.       Print NOMESRO$(CATEGORIAO(NUMERO));
  9140.      Else 
  9141.       Print NOMESCO$(CATEGORIAO(NUMERO));
  9142.      End If 
  9143.     Else If TIPO$="P"
  9144.      POSIZIONEP(NUMERO)=-1-A
  9145.      Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9146.      Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9147.      Add PESONETTOP(A),PESOP(NUMERO)*1000
  9148.      Add PESONETTOP(A),PESONETTOP(NUMERO)
  9149.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9150.      Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9151.     Else If TIPO$="S"
  9152.      Add SOLDIP(A),NUMERO
  9153.      Add SOLDIRICEVUTIP(A),NUMERO
  9154.      Add PESONETTOP(0),-NUMERO*PESOS
  9155.      Add PESONETTOP(A),NUMERO*PESOS
  9156.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9157.      Print "Hai deciso di dare";NUMERO;
  9158.      If NUMERO=1
  9159.       Print " soldo";
  9160.      Else 
  9161.       Print " soldi";
  9162.      End If 
  9163.     End If 
  9164.     Print " a ";NOMEP$(A);
  9165.     Proc _ASPETTA
  9166.     Exit 
  9167.    End If 
  9168.   Next A
  9169.   If A=NUMEROP+1
  9170.    Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9171.    If _MUSICA=False
  9172.     Bell 1
  9173.    End If 
  9174.    Proc _ASPETTA
  9175.   End If 
  9176.  End If 
  9177. Else 
  9178.  For A=1 To NUMEROP
  9179.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9180.    If TIPO$="O"
  9181.     POSIZIONEO(NUMERO)=-1-A
  9182.     If Btst(1,TIPOO(NUMERO))=True
  9183.      Dec RESTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9184.      Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9185.      Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9186.     Else 
  9187.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9188.      Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9189.      Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9190.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(NUMERO))
  9191.     End If 
  9192.     If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9193.      For B=0 To NUMEROO
  9194.       If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9195.        If Btst(1,TIPOO(B))=True
  9196.         Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
  9197.        Else 
  9198.         Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
  9199.        End If 
  9200.       End If 
  9201.      Next B
  9202.      For B=1 To NUMEROP
  9203.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9204.        Add PESONETTOP(A),-PESOP(B)*1000
  9205.        Add PESONETTOP(A),-PESONETTOP(B)
  9206.       End If 
  9207.      Next B
  9208.     End If 
  9209.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9210.     Print "Hai deciso di dare 1 ";
  9211.     If Btst(1,TIPOO(NUMERO))=True
  9212.      Print NOMESRO$(CATEGORIAO(NUMERO));
  9213.     Else 
  9214.      Print NOMESCO$(CATEGORIAO(NUMERO));
  9215.     End If 
  9216.    Else If TIPO$="P"
  9217.     POSIZIONEP(NUMERO)=-1-A
  9218.     Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9219.     Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9220.     Add PESONETTOP(A),PESOP(NUMERO)*1000
  9221.     Add PESONETTOP(A),PESONETTOP(NUMERO)
  9222.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9223.     Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9224.    Else If TIPO$="S"
  9225.     Add SOLDIP(A),NUMERO
  9226.     Add SOLDIRICEVUTIP(A),NUMERO
  9227.     Add PESONETTOP(0),-NUMERO*PESOS
  9228.     Add PESONETTOP(A),NUMERO*PESOS
  9229.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9230.     Print "Hai deciso di dare";NUMERO;
  9231.     If NUMERO=1
  9232.      Print " soldo";
  9233.     Else 
  9234.      Print " soldi";
  9235.     End If 
  9236.    End If 
  9237.    Print " a ";NOMEP$(A);
  9238.    Proc _ASPETTA
  9239.   End If 
  9240.  Next A
  9241. End If 
  9242. End Proc
  9243. Procedure PERSONAGGIOVISIBILE[P]
  9244. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9245.  PERSONAGGIOVISIBILEP(P)=True
  9246. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  9247.  PERSONAGGIOVISIBILEP(P)=True
  9248. Else 
  9249.  PERSONAGGIOVISIBILEP(P)=False
  9250. End If 
  9251. End Proc
  9252. Procedure PRENDI
  9253. If TEMP0DIATTRAVERSAMENTOP(0)>0
  9254.  For A=1 To NUMEROP
  9255.   If PERSONAGGIOVISIBILEP(A)=True
  9256.    Inc PERSONAGGI
  9257.   End If 
  9258.  Next A
  9259.  If PERSONAGGI>0
  9260.   Proc PRENDIUNPERSONAGGIO
  9261.  Else 
  9262.   Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
  9263.   If _MUSICA=False
  9264.    Bell 1
  9265.   End If 
  9266.   Proc _ASPETTA
  9267.   Pop Proc
  9268.  End If 
  9269. Else 
  9270.  For A=1 To NUMEROP
  9271.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9272.    Inc PERSONAGGI
  9273.   End If 
  9274.  Next A
  9275. End If 
  9276. For A=0 To NUMEROCO
  9277.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9278.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9279. Next A
  9280. If SOLDIL(POSIZIONEP(0))>0
  9281.  SOLDI=True
  9282. End If 
  9283. If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  9284.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  9285.  OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  9286.  OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  9287.  If OGGETTOPERSONAGGIOOSOLDI$="o"
  9288.   Proc PRENDIUNOGGETTO
  9289.  Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  9290.   Proc PRENDIUNPERSONAGGIO
  9291.  Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  9292.   Proc PRENDIDEISOLDI
  9293.  End If 
  9294. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  9295.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto o dei soldi (o/s) ?>";
  9296.  OGGETTOOSOLDI$=Input$(1)
  9297.  OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  9298.  If OGGETTOOSOLDI$="o"
  9299.   Proc PRENDIUNOGGETTO
  9300.  Else If OGGETTOOSOLDI$="s"
  9301.   Proc PRENDIDEISOLDI
  9302.  End If 
  9303. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  9304.  Print At(0,ULTIMALINEA);"Vuoi prendere un personaggio o dei soldi (p/s) ?>";
  9305.  PERSONAGGIOOSOLDI$=Input$(1)
  9306.  PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  9307.  If PERSONAGGIOOSOLDI$="p"
  9308.   Proc PRENDIUNPERSONAGGIO
  9309.  Else If PERSONAGGIOOSOLDI$="s"
  9310.   Proc PRENDIDEISOLDI
  9311.  End If 
  9312. Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  9313.  Proc PRENDIDEISOLDI
  9314. Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  9315.  Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto od un personaggio (o/p) ?>";
  9316.  OGGETTOOPERSONAGGIO$=Input$(1)
  9317.  OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9318.  If OGGETTOOPERSONAGGIO$="o"
  9319.   Proc PRENDIUNOGGETTO
  9320.  Else If OGGETTOOPERSONAGGIO$="p"
  9321.   Proc PRENDIUNPERSONAGGIO
  9322.  End If 
  9323. Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  9324.  Proc PRENDIUNOGGETTO
  9325. Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  9326.  Proc PRENDIUNPERSONAGGIO
  9327. Else 
  9328.  Print At(0,ULTIMALINEA);"Non ci sono oggetti,personaggi o soldi da prendere";
  9329.  If _MUSICA=False
  9330.   Bell 1
  9331.  End If 
  9332.  Proc _ASPETTA
  9333. End If 
  9334. End Proc
  9335. Procedure PRENDIAO[AZIONE,P]
  9336. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9337. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9338. For A=0 To NUMEROO
  9339.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9340.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9341.   B=A
  9342.  End If 
  9343. Next A
  9344. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9345.  Pop Proc
  9346. End If 
  9347. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9348.  A=B
  9349. Else 
  9350.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9351.  B=0
  9352.  For A=0 To NUMEROO
  9353.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9354.    OGGETTODELPERSONAGGIOP(B)=A
  9355.    Inc B
  9356.   End If 
  9357.  Next A
  9358.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9359. End If 
  9360. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9361. If Btst(1,TIPOO(A))=True
  9362.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9363. Else 
  9364.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9365. End If 
  9366. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9367.  For B=0 To NUMEROO
  9368.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9369.    If Btst(1,TIPOO(B))=True
  9370.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9371.    Else 
  9372.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9373.    End If 
  9374.   End If 
  9375.  Next B
  9376.  For B=1 To NUMEROP
  9377.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9378.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9379.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9380.   End If 
  9381.  Next B
  9382. End If 
  9383. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9384.  Print NOMEP$(P);" prende 1 ";
  9385.  If Btst(1,TIPOO(A))=True
  9386.   Print NOMESRO$(CATEGORIAO(A))
  9387.  Else 
  9388.   Print NOMESCO$(CATEGORIAO(A))
  9389.  End If 
  9390. End If 
  9391. Dec PARAAAZIONEP(AZIONE,P)
  9392. If PARAAAZIONEP(AZIONE,P)=0
  9393.  FINEA(AZIONE,P)=True
  9394. End If 
  9395. End Proc
  9396. Procedure PRENDIAOB[AZIONE,P]
  9397. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9398. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9399. For A=0 To NUMEROO
  9400.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9401.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9402.   B=A
  9403.  End If 
  9404. Next A
  9405. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9406.  Pop Proc
  9407. End If 
  9408. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9409.  A=B
  9410. Else 
  9411.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9412.  B=0
  9413.  For A=0 To NUMEROO
  9414.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9415.    OGGETTODELPERSONAGGIOP(B)=A
  9416.    Inc B
  9417.   End If 
  9418.  Next A
  9419.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9420. End If 
  9421. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9422. If Btst(1,TIPOO(A))=True
  9423.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9424. Else 
  9425.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9426. End If 
  9427. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9428.  For B=0 To NUMEROO
  9429.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9430.    If Btst(1,TIPOO(B))=True
  9431.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9432.    Else 
  9433.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9434.    End If 
  9435.   End If 
  9436.  Next B
  9437.  For B=1 To NUMEROP
  9438.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9439.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9440.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9441.   End If 
  9442.  Next B
  9443. End If 
  9444. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9445.  Print NOMEP$(P);" prende 1 ";
  9446.  If Btst(1,TIPOO(A))=True
  9447.   Print NOMESRO$(CATEGORIAO(A))
  9448.  Else 
  9449.   Print NOMESCO$(CATEGORIAO(A))
  9450.  End If 
  9451. End If 
  9452. Dec PARAAAZIONEP(AZIONE,P)
  9453. If PARAAAZIONEP(AZIONE,P)=0
  9454.  FINEA(AZIONE,P)=True
  9455. End If 
  9456. End Proc
  9457. Procedure PRENDIAOTB[AZIONE,P]
  9458. If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9459. NUMEROOGGETTIDELPERSONAGGIOP=-1
  9460. For A=0 To NUMEROO
  9461.  If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9462.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  9463.   B=A
  9464.  End If 
  9465. Next A
  9466. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  9467.  Pop Proc
  9468. End If 
  9469. If NUMEROOGGETTIDELPERSONAGGIOP=0
  9470.  A=B
  9471. Else 
  9472.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  9473.  B=0
  9474.  For A=0 To NUMEROO
  9475.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9476.    OGGETTODELPERSONAGGIOP(B)=A
  9477.    Inc B
  9478.   End If 
  9479.  Next A
  9480.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  9481. End If 
  9482. POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9483. If Btst(1,TIPOO(A))=True
  9484.  Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9485. Else 
  9486.  Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9487. End If 
  9488. If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9489.  For B=0 To NUMEROO
  9490.   If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9491.    If Btst(1,TIPOO(B))=True
  9492.     Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9493.    Else 
  9494.     Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9495.    End If 
  9496.   End If 
  9497.  Next B
  9498.  For B=1 To NUMEROP
  9499.   If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9500.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9501.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9502.   End If 
  9503.  Next B
  9504. End If 
  9505. If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9506.  Print NOMEP$(P);" prende 1 ";
  9507.  If Btst(1,TIPOO(A))=True
  9508.   Print NOMESRO$(CATEGORIAO(A))
  9509.  Else 
  9510.   Print NOMESCO$(CATEGORIAO(A))
  9511.  End If 
  9512. End If 
  9513. Dec PARAAAZIONEP(AZIONE,P)
  9514. If PARAAAZIONEP(AZIONE,P)=0
  9515.  FINEA(AZIONE,P)=True
  9516. End If 
  9517. End Proc
  9518. Procedure PRENDIAP[AZIONE,P]
  9519. For A=1 To NUMEROP
  9520.  If POSIZIONEP(A)=POSIZIONEP(P) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(P) and DREZIONEPRESAP(A)=DREZIONEPRESAP(P)
  9521.   POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9522.   Add PESONETTOP(P),PESOP(A)*1000
  9523.   Add PESONETTOP(P),PESONETTOP(A)
  9524.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9525.    Print NOMEP$(P);" prende ";NOMEP$(A)
  9526.   End If 
  9527.   Dec PARABAZIONEP(AZIONE,P)
  9528.   If PARABAZIONEP(AZIONE,P)=0
  9529.    FINEA(AZIONE,P)=True
  9530.   End If 
  9531.   Exit 
  9532.  End If 
  9533. Next A
  9534. End Proc
  9535. Procedure PRENDIDEISOLDI
  9536. Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi prendere (0-"+Str$(SOLDIL(POSIZIONEP(0)))-" "+") ?>";SOLDI$;
  9537. Curs Off 
  9538. If SOLDI$<>""
  9539.  SOLDI=Val(SOLDI$)
  9540.  Proc LIMITI[SOLDI,0,SOLDIL(POSIZIONEP(0))] : SOLDI=Param
  9541.  If SOLDI>0
  9542.   Add SOLDIP(0),SOLDI
  9543.   Add SOLDIL(POSIZIONEP(0)),-SOLDI
  9544.   Add PESONETTOP(0),SOLDI*PESOS
  9545.   COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9546.   Print "Hai deciso di prendere";SOLDI;
  9547.   If SOLDI=1
  9548.    Print " soldo";
  9549.   Else 
  9550.    Print " soldi";
  9551.   End If 
  9552.   Proc _ASPETTA
  9553.  End If 
  9554. End If 
  9555. End Proc
  9556. Procedure PRENDIPA[AZIONE,P]
  9557. A=PARAAAZIONEP(AZIONE,P)
  9558. If POSIZIONEP(A)=POSIZIONEP(P)
  9559.  POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  9560.  Add PESONETTOP(P),PESOP(A)*1000
  9561.  Add PESONETTOP(P),PESONETTOP(A)
  9562.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9563.   Print NOMEP$(P);" prende ";NOMEP$(A)
  9564.  End If 
  9565.  FINEA(AZIONE,P)=True
  9566. End If 
  9567. End Proc
  9568. Procedure PRENDIUNOGGETTO
  9569. For A=0 To NUMEROCO
  9570.  If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9571.  If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9572. Next A
  9573. If CATEGORIEOGGETTI>0
  9574.  If CATEGORIEOGGETTI>1
  9575.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi prendere ?>";OGGETTO$;
  9576.   Curs Off 
  9577.   If OGGETTO$<>""
  9578.    For A=0 To NUMEROO
  9579.     If POSIZIONEO(A)=POSIZIONEP(0)
  9580.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  9581.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9582.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", ï¿½ residente";
  9583.        If _MUSICA=False
  9584.         Bell 1
  9585.        End If 
  9586.       Else 
  9587.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9588.        Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9589.        Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9590.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9591.         For B=0 To NUMEROO
  9592.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9593.           If Btst(1,TIPOO(B))=True
  9594.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9595.           Else 
  9596.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9597.           End If 
  9598.          End If 
  9599.         Next B
  9600.         For B=1 To NUMEROP
  9601.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9602.           Add PESONETTOP(0),PESOP(B)*1000
  9603.           Add PESONETTOP(0),PESONETTOP(B)
  9604.          End If 
  9605.         Next B
  9606.        End If 
  9607.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9608.        Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
  9609.       End If 
  9610.       Proc _ASPETTA : Exit 
  9611.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  9612.       If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  9613.        Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", ï¿½ residente";
  9614.        If _MUSICA=False
  9615.         Bell 1
  9616.        End If 
  9617.       Else 
  9618.        POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9619.        Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9620.        Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
  9621.        If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9622.         For B=0 To NUMEROO
  9623.          If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9624.           If Btst(1,TIPOO(B))=True
  9625.            Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9626.           Else 
  9627.            Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9628.           End If 
  9629.          End If 
  9630.         Next B
  9631.         For B=1 To NUMEROP
  9632.          If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9633.           Add PESONETTOP(0),PESOP(B)*1000
  9634.           Add PESONETTOP(0),PESONETTOP(B)
  9635.          End If 
  9636.         Next B
  9637.        End If 
  9638.        COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9639.        Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
  9640.       End If 
  9641.       Proc _ASPETTA : Exit 
  9642.      End If 
  9643.     End If 
  9644.    Next A
  9645.    If A=NUMEROO+1
  9646.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  9647.     If _MUSICA=False
  9648.      Bell 1
  9649.     End If 
  9650.     Proc _ASPETTA
  9651.    End If 
  9652.   End If 
  9653.  Else 
  9654.   For A=0 To NUMEROO
  9655.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9656.     POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  9657.     If Btst(1,TIPOO(A))=True
  9658.      Inc RESTIDELPERSONAGGIO0(CATEGORIAO(A))
  9659.     Else 
  9660.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(A))
  9661.     End If 
  9662.     Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  9663.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9664.      For B=0 To NUMEROO
  9665.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9666.        If Btst(1,TIPOO(B))=True
  9667.         Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  9668.        Else 
  9669.         Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  9670.        End If 
  9671.       End If 
  9672.      Next B
  9673.      For B=1 To NUMEROP
  9674.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9675.        Add PESONETTOP(0),PESOP(B)*1000
  9676.        Add PESONETTOP(0),PESONETTOP(B)
  9677.       End If 
  9678.      Next B
  9679.     End If 
  9680.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9681.     Print "Hai deciso di prendere 1 ";
  9682.     If Btst(1,TIPOO(A))=True
  9683.      Print NOMESRO$(CATEGORIAO(A));
  9684.     Else 
  9685.      Print NOMESCO$(CATEGORIAO(A));
  9686.     End If 
  9687.     Proc _ASPETTA : Exit 
  9688.    End If 
  9689.   Next A
  9690.  End If 
  9691. End If 
  9692. End Proc
  9693. Procedure PRENDIUNPERSONAGGIO
  9694. For A=1 To NUMEROP
  9695.  If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
  9696. Next A
  9697. If PERSONAGGI>0
  9698.  If PERSONAGGI>1
  9699.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
  9700.   Curs Off 
  9701.   If PERSONAGGIO$<>""
  9702.    For A=1 To NUMEROP
  9703.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9704.      POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9705.      Add PESONETTOP(0),PESOP(A)*1000
  9706.      Add PESONETTOP(0),PESONETTOP(A)
  9707.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9708.      Print "Hai deciso di prendere ";NOMEP$(A);
  9709.      Proc _ASPETTA : Exit 
  9710.     End If 
  9711.    Next A
  9712.    If A=NUMEROP+1
  9713.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9714.     If _MUSICA=False
  9715.      Bell 1
  9716.     End If 
  9717.     Proc _ASPETTA
  9718.    End If 
  9719.   End If 
  9720.  Else 
  9721.   For A=1 To NUMEROP
  9722.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9723.     POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  9724.     Add PESONETTOP(0),PESOP(A)*1000
  9725.     Add PESONETTOP(0),PESONETTOP(A)
  9726.     COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9727.     Print "Hai deciso di prendere ";NOMEP$(A);
  9728.     Proc _ASPETTA : Exit 
  9729.    End If 
  9730.   Next A
  9731.  End If 
  9732. End If 
  9733. End Proc
  9734. Procedure SALVAUNFILE
  9735. Show On : Cls 
  9736. FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
  9737. If Len(FILE$)>0
  9738.  If Upper$(Right$(FILE$,4))<>".ADV"
  9739.   FILE$=FILE$+".Adv"
  9740.  End If 
  9741.  Proc TIC["Sto salvando il file",ULTIMALINEA-1]
  9742.  Proc TIC[FILE$,ULTIMALINEA]
  9743.  Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
  9744. End If 
  9745. Erase BANCO
  9746. Hide On 
  9747. End Proc
  9748. Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
  9749. SCOPODELGIOCO=AZIONEP(7,0)
  9750. PARA=PARAAAZIONEP(7,0)
  9751. PARB=PARABAZIONEP(7,0)
  9752. PARC=PARACAZIONEP(7,0)
  9753. Cls 
  9754. If NUOVOSCOPODELGIOCO=True
  9755.  If M0DIFICA=False
  9756.   Proc TIC[MESSAGGIO3$,0] : Print 
  9757.  End If 
  9758.  Print "Scopo del gioco>";
  9759.  If SCOPODELGIOCO=0
  9760.   Print "nessuno"
  9761.  Else If SCOPODELGIOCO=1
  9762.   Print "Dai a ";NOMEP$(PARA);PARB;" ";
  9763.   If PARB=1
  9764.    Print NOMESCO$(PARC)
  9765.   Else 
  9766.    Print NOMEPCO$(PARC)
  9767.   End If 
  9768.  Else If SCOPODELGIOCO=2
  9769.   Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
  9770.   If PARB=1
  9771.    Print "o ";
  9772.   Else 
  9773.    Print "i ";
  9774.   End If 
  9775.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9776.  Else If SCOPODELGIOCO=3
  9777.   Print "Dai a ";NOMEP$(PARA);PARB;" sold";
  9778.   If PARB=1
  9779.    Print "o"
  9780.   Else 
  9781.    Print "i"
  9782.   End If 
  9783.  Else If SCOPODELGIOCO=4
  9784.   Print "Guadagna";PARA;" sold";
  9785.   If PARA=1
  9786.    Print "o"
  9787.   Else 
  9788.    Print "i"
  9789.   End If 
  9790.  Else If SCOPODELGIOCO=5
  9791.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
  9792.   If PARB=1
  9793.    Print NOMESCO$(PARC)
  9794.   Else 
  9795.    Print NOMEPCO$(PARC)
  9796.   End If 
  9797.  Else If SCOPODELGIOCO=6
  9798.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
  9799.   If PARB=1
  9800.    Print "o ";
  9801.   Else 
  9802.    Print "i ";
  9803.   End If 
  9804.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  9805.  Else If SCOPODELGIOCO=7
  9806.   Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
  9807.   If PARB=1
  9808.    Print "o"
  9809.   Else 
  9810.    Print "i"
  9811.   End If 
  9812.  Else If SCOPODELGIOCO=8
  9813.   Print "Prendi";PARA;" ";
  9814.   If PARA=1
  9815.    Print NOMESCO$(PARB)
  9816.   Else 
  9817.    Print NOMEPCO$(PARB)
  9818.   End If 
  9819.  Else If SCOPODELGIOCO=9
  9820.   Print "Prendi";PARA;" oggett";
  9821.   If PARA=1
  9822.    Print "o ";
  9823.   Else 
  9824.    Print "i ";
  9825.   End If 
  9826.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9827.  Else If SCOPODELGIOCO=10
  9828.   Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9829.  Else If SCOPODELGIOCO=11
  9830.   Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
  9831.  Else If SCOPODELGIOCO=12
  9832.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
  9833.  Else If SCOPODELGIOCO=13
  9834.   Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
  9835.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9836.  Else If SCOPODELGIOCO=14
  9837.   Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
  9838.  Else If SCOPODELGIOCO=15
  9839.   Print "Usa 1 oggetto ";
  9840.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9841.   Print Space$(17);"su 1 ";NOMESCO$(PARB)
  9842.  Else If SCOPODELGIOCO=16
  9843.   Print "Usa 1 oggetto ";
  9844.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9845.   Print Space$(17);"su 1 oggetto ";
  9846.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  9847.  Else If SCOPODELGIOCO=17
  9848.   Print "Usa 1 oggetto ";
  9849.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  9850.   Print Space$(17);"su ";NOMEP$(PARB)
  9851.  Else If SCOPODELGIOCO=18
  9852.   Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
  9853.  End If 
  9854. Else 
  9855.  If NUOVOSCOPODELGIOCO=1
  9856. 'Dai al personaggio PARA PARB oggetti PARC 
  9857.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9858.   If PERSONAGGIOACUIDARE$<>""
  9859.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9860.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9861.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9862.    If NUMEROOGGETTIDADARE$<>""
  9863.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9864.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9865.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9866.    End If 
  9867.   End If 
  9868.  Else If NUOVOSCOPODELGIOCO=2
  9869. 'Dai al personaggio PARA PARB oggetti di tipo PARC 
  9870.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9871.   If PERSONAGGIOACUIDARE$<>""
  9872.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9873.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9874.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9875.    If NUMEROOGGETTIDADARE$<>""
  9876.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9877.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9878.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9879.    End If 
  9880.   End If 
  9881.  Else If NUOVOSCOPODELGIOCO=3
  9882. 'Dai al personaggio PARA PARB soldi
  9883.   Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  9884.   If PERSONAGGIOACUIDARE$<>""
  9885.    PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  9886.    Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  9887.    Locate 0,ULTIMALINEA : Input "Quanti soldi gli devi dare (1-65535) ?>";SOLDIDADARE$
  9888.    If SOLDIDADARE$<>""
  9889.     SOLDIDADARE=Val(SOLDIDADARE$)
  9890.     Proc LIMITI[SOLDIDADARE,1,65535] : PARB=Param
  9891.    End If 
  9892.   End If 
  9893.  Else If NUOVOSCOPODELGIOCO=4
  9894. 'Guadagna PARA soldi 
  9895.   Locate 0,ULTIMALINEA : Input "Quanti soldi devi guadagnare (1-65535) ?>";SOLDIDAGUADAGNARE$
  9896.   If SOLDIDAGUADAGNARE$<>""
  9897.    SOLDIDAGUADAGNARE=Val(SOLDIDAGUADAGNARE$)
  9898.    Proc LIMITI[SOLDIDAGUADAGNARE,1,65535] : PARA=Param
  9899.   End If 
  9900.  Else If NUOVOSCOPODELGIOCO=5
  9901. 'Lascia nel luogo PARA PARB oggetti PARC 
  9902.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9903.   If LUOGOINCUILASCIARE$<>""
  9904.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9905.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9906.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi lasciare (1-65535) ?>";NUMEROOGGETTIDALASCIARE$
  9907.    If NUMEROOGGETTIDALASCIARE$<>""
  9908.     NUMEROOGGETTIDALASCIARE=Val(NUMEROOGGETTIDALASCIARE$)
  9909.     Proc LIMITI[NUMEROOGGETTIDALASCIARE,1,65535] : PARB=Param
  9910.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  9911.    End If 
  9912.   End If 
  9913.  Else If NUOVOSCOPODELGIOCO=6
  9914. 'Lascia nel luogo PARA PARB oggetti di tipo PARC 
  9915.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9916.   If LUOGOINCUILASCIARE$<>""
  9917.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9918.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9919.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  9920.    If NUMEROOGGETTIDADARE$<>""
  9921.     NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  9922.     Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  9923.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  9924.    End If 
  9925.   End If 
  9926.  Else If NUOVOSCOPODELGIOCO=7
  9927. 'Lascia nel luogo PARA PARB soldi
  9928.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  9929.   If LUOGOINCUILASCIARE$<>""
  9930.    LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  9931.    Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  9932.    Locate 0,ULTIMALINEA : Input "Quanti soldi ci devi lasciare (1-65535) ?>";SOLDIDALASCIARE$
  9933.    If SOLDIDALASCIARE$<>""
  9934.     SOLDIDALASCIARE=Val(SOLDIDALASCIARE$)
  9935.     Proc LIMITI[SOLDIDALASCIARE,1,65535] : PARB=Param
  9936.    End If 
  9937.   End If 
  9938.  Else If NUOVOSCOPODELGIOCO=8
  9939. 'Prendi PARA oggetti PARB
  9940.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9941.   If NUMEROOGGETTIDAPRENDERE$<>""
  9942.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9943.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9944.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9945.   End If 
  9946.  Else If NUOVOSCOPODELGIOCO=9
  9947. 'Prendi PARA oggetti di tipo PARB
  9948.   Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  9949.   If NUMEROOGGETTIDAPRENDERE$<>""
  9950.    NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  9951.    Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  9952.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9953.   End If 
  9954.  Else If NUOVOSCOPODELGIOCO=10
  9955. 'Trova il personaggio PARA 
  9956.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi trovare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODATROVARE$
  9957.   If PERSONAGGIODATROVARE$<>""
  9958.    PERSONAGGIODATROVARE=Val(PERSONAGGIODATROVARE$)
  9959.    Proc LIMITI[PERSONAGGIODATROVARE,1,NUMEROP] : PARA=Param
  9960.   End If 
  9961.  Else If NUOVOSCOPODELGIOCO=11
  9962. 'Uccidi il personaggio PARA  
  9963.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi uccidere (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODAUCCIDERE$
  9964.   If PERSONAGGIODAUCCIDERE$<>""
  9965.    PERSONAGGIODAUCCIDERE=Val(PERSONAGGIODAUCCIDERE$)
  9966.    Proc LIMITI[PERSONAGGIODAUCCIDERE,1,NUMEROP] : PARA=Param
  9967.   End If 
  9968.  Else If NUOVOSCOPODELGIOCO=12
  9969. 'Usa un'oggetto PARA su un'oggetto PARB
  9970.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9971.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9972.  Else If NUOVOSCOPODELGIOCO=13
  9973. 'Usa un'oggetto PARA su un'oggetto di tipo PARB
  9974.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9975.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9976.  Else If NUOVOSCOPODELGIOCO=14
  9977. 'Usa un'oggetto PARA sul personaggio PARB
  9978.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  9979.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9980.   If PERSONAGGIOSUCUIUSARE$<>""
  9981.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9982.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9983.   End If 
  9984.  Else If NUOVOSCOPODELGIOCO=15
  9985. 'Usa un'oggetto di tipo PARA su un'oggetto PARB
  9986.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9987.   MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  9988.  Else If NUOVOSCOPODELGIOCO=16
  9989. 'Usa un'oggetto di tipo PARA su un'oggetto di tipo PARB
  9990.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9991.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  9992.  Else If NUOVOSCOPODELGIOCO=17
  9993. 'Usa 1 oggetto di tipo PARA sul personaggio PARB 
  9994.   MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  9995.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  9996.   If PERSONAGGIOSUCUIUSARE$<>""
  9997.    PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  9998.    Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  9999.   End If 
  10000.  Else If NUOVOSCOPODELGIOCO=18
  10001. 'Vai nel luogo PARA
  10002.   Locate 0,ULTIMALINEA : Input "In quale luogo vuoi andare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUIANDARE$
  10003.   If LUOGOINCUIANDARE$<>""
  10004.    LUOGOINCUIANDARE=Val(LUOGOINCUIANDARE$)
  10005.    Proc LIMITI[LUOGOINCUIANDARE,0,NUMEROL] : PARA=Param
  10006.   End If 
  10007.  End If 
  10008.  AZIONEP(7,0)=NUOVOSCOPODELGIOCO
  10009.  PARAAAZIONEP(7,0)=PARA
  10010.  PARABAZIONEP(7,0)=PARB
  10011.  PARACAZIONEP(7,0)=PARC
  10012. End If 
  10013. Curs Off 
  10014. End Proc
  10015. Procedure SEGUI[AZIONE,P]
  10016. End Proc
  10017. Procedure SEGUIPA[AZIONE,P]
  10018. End Proc
  10019. Procedure SETTASCHERMO
  10020. Hide On 
  10021. If Ntsc Then LUNGHEZZASCHERMO=208 Else LUNGHEZZASCHERMO=264
  10022. ULTIMALINEA=LUNGHEZZASCHERMO/8-2
  10023. Screen Open 0,640,LUNGHEZZASCHERMO,2,Hires : Curs Off : Flash Off 
  10024. Palette $60,$CCC : Pen 1 : Paper 0 : Ink 1,0
  10025. Set Curs 170,85,170,85,170,85,170,85
  10026. Wait Vbl : Limit Mouse 
  10027. End Proc
  10028. Procedure SUONAUNMODULO[M0DO]
  10029. If M0DO=True
  10030.  Show On 
  10031.  NOMEMODULO$=Fsel$("**","","Carica un modulo sonoro da ascoltare")
  10032.  If NOMEMODULO$<>""
  10033.   Track Loop Of : Track Stop 
  10034.   Track Load NOMEMODULO$,BANCOMODULO
  10035.   Track Play BANCOMODULO : Track Loop On 
  10036.  End If 
  10037.  Hide On 
  10038. Else 
  10039.  M0DULO=Rnd(92)+1
  10040.  If M0DULO=93
  10041.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/Beacand.mod")
  10042.   If M0DULOPRESENTE=True
  10043.    Track Load "Lavoro:Musica/Modules/Beacand.mod",BANCOMODULO
  10044.   End If 
  10045.  Else If M0DULO=92
  10046.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/ANewJob.mod")
  10047.   If M0DULOPRESENTE=True
  10048.    Track Load "Lavoro:Musica/Modules/ANewJob.mod",BANCOMODULO
  10049.   End If 
  10050.  Else 
  10051.   M0DULOPRESENTE=Exist("Lavoro:Musica/Modules/mod."+Str$(M0DULO)-" ")
  10052.   If M0DULOPRESENTE=True
  10053.    Track Load "Lavoro:Musica/Modules/mod."+Str$(M0DULO)-" ",BANCOMODULO
  10054.   End If 
  10055.  End If 
  10056.  If M0DULOPRESENTE=True
  10057.   Track Loop Of : Track Stop 
  10058.   Track Play BANCOMODULO : Track Loop On 
  10059.  End If 
  10060. End If 
  10061. End Proc[NOMEMODULO$]
  10062. Procedure TEMP0
  10063. Print "Tempo trascorso>";
  10064. If M0DOVISUALIZZAZIONETEMPO=True
  10065.  GIORNI=TEMP0TRASCORSO/1440 : Print Str$(GIORNI)-" ";
  10066.  If GIORNI=1
  10067.   Print " giorno"; Else Print " giorni";
  10068.  End If 
  10069.  _ORE=TEMP0TRASCORSO/60 mod 24 : Print _ORE;
  10070.  If _ORE=1
  10071.   Print " ora"; Else Print " ore";
  10072.  End If 
  10073.  M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  10074.  If M1NUTI=1
  10075.   Print " minuto" Else Print " minuti"
  10076.  End If 
  10077. Else 
  10078.  GIORNI=TEMP0TRASCORSO/1440 : Print "Giorni";GIORNI;
  10079.  _ORE=TEMP0TRASCORSO/60 mod 24
  10080.  Print Using " #";_ORE/10; Using "#";_ORE mod 10;
  10081.  M1NUTI=TEMP0TRASCORSO mod 60
  10082.  Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  10083. End If 
  10084. End Proc
  10085. Procedure TIC[TESTO$,LINEA]
  10086. '-> Testo Invertito e Centrato by Stefano Regattin 
  10087. 'i> 23 maggio 1996 
  10088. 'm> 25 maggio 1996 
  10089. '--------------------------------------------------------------------------- 
  10090. 'LINEA contiene il numero di linea dove si posizioner� il testo; se vale -1
  10091. ' (True) il testo sar� posizionato alla linea dove si trova il cursore; in 
  10092. ' questo caso sar� necessario un comando Print per spostare il cursore 
  10093. '----------------------------------------------------------------------
  10094. If LINEA=True Then L=Y Curs Else L=LINEA
  10095. Locate 0,L : Inverse On : Cline : Centre TESTO$ : Inverse Off 
  10096. End Proc
  10097. Procedure TIPODILUOGO
  10098. Print "Tipo di luogo>";TIPOL$(TIPOL(POSIZIONEP(0)))
  10099. End Proc
  10100. Procedure TIPODILUOGODIDESTINAZIONE
  10101. Print "Tipo di luogo di destinazione>";TIPOL$(TIPOL(LUOGODIDESTINAZIONEP(0)))
  10102. End Proc
  10103. Procedure USA
  10104. For A=0 To NUMEROCO
  10105.  If OGGETTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10106.  If RESTIDELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10107. Next A
  10108. If CATEGORIEOGGETTI>0
  10109.  If CATEGORIEOGGETTI>1
  10110.   Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi usare ?>";OGGETTO$;
  10111.   Curs Off 
  10112.   If OGGETTO$<>""
  10113.    For A=0 To NUMEROO
  10114.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10115.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10116.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10117.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10118.       Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10119.      End If 
  10120.     End If 
  10121.    Next A
  10122.    If A=NUMEROO+1
  10123.     Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  10124.     If _MUSICA=False
  10125.      Bell 1
  10126.     End If 
  10127.     Proc _ASPETTA
  10128.    End If 
  10129.   End If 
  10130.  Else 
  10131.   For A=0 To NUMEROO
  10132.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10133.     Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10134.    End If 
  10135.   Next A
  10136.  End If 
  10137. Else 
  10138.  Print At(0,ULTIMALINEA);"Non hai oggetti da usare";
  10139.  If _MUSICA=False
  10140.   Bell 1
  10141.  End If 
  10142.  Proc _ASPETTA
  10143. End If 
  10144. End Proc
  10145. Procedure USASUOGGETTO[O,Q]
  10146. COMPIUTAAZIONE=1
  10147. If TIPOCO(CATEGORIAO(O))=%100000
  10148.  Locate 0,ULTIMALINEA
  10149.  If Btst(1,TIPOO(O))=True
  10150.   Print "Non puoi ammaliare 1 ";
  10151.   If Btst(1,TIPOO(Q))=True
  10152.    Print NOMESRO$(CATEGORIAO(Q));
  10153.   Else 
  10154.    Print NOMESCO$(CATEGORIAO(Q));
  10155.   End If 
  10156.   Print " con 1 ";NOMESRO$(CATEGORIAO(O))
  10157.  Else 
  10158.   Print "Hai deciso di ammaliare 1 ";
  10159.   If Btst(1,TIPOO(Q))=True
  10160.    Print NOMESRO$(CATEGORIAO(Q));
  10161.   Else 
  10162.    Print NOMESCO$(CATEGORIAO(Q));
  10163.   End If 
  10164.   Print " con 1 ";
  10165.   If Btst(1,TIPOO(O))=True
  10166.    Print NOMESRO$(CATEGORIAO(O));
  10167.   Else 
  10168.    Print NOMESCO$(CATEGORIAO(O));
  10169.   End If 
  10170.   MAGIA=PARATIPOCO(CATEGORIAO(O))/$10000
  10171.   PARMAGIA=PARATIPOCO(CATEGORIAO(O)) mod $10000
  10172.   If MAGIA=0
  10173. 'Cambia la categoria dell'oggetto, cio� lo trasforma in un'altro oggetto 
  10174.    CATEGORIAO(Q)=PARMAGIA
  10175.   Else If MAGIA=1
  10176. 'Fa diventare l'oggetto il resto dell'oggetto e viceversa
  10177.    Bchg 1,TIPOO(Q)
  10178.   Else If MAGIA=2
  10179. 'Fa diventare l'oggetto il resto di un oggetto e crea un nuovo oggetto della 
  10180. ' categoria indicata dal parametro PARMAGIA
  10181.    Bclr 1,TIPOO(Q)
  10182.    Inc NUMEROO
  10183.    CATEGORIAO(NUMEROO)=PARMAGIA
  10184.    POSIZIONEO(NUMEROO)=POSIZIONEO(Q)
  10185.   End If 
  10186.  End If 
  10187. Else 
  10188.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di usare 1 ";
  10189.  If Btst(1,TIPOO(O))=True
  10190.   Print NOMESRO$(CATEGORIAO(O));
  10191.  Else 
  10192.   Print NOMESCO$(CATEGORIAO(O));
  10193.  End If 
  10194.  Print " su 1 ";
  10195.  If Btst(1,TIPOO(Q))=True
  10196.   Print NOMESRO$(CATEGORIAO(Q));
  10197.  Else 
  10198.   Print NOMESCO$(CATEGORIAO(Q));
  10199.  End If 
  10200. End If 
  10201. OGGETTOUSANTE=O
  10202. OGGETTOUSATO=Q
  10203. Proc _ASPETTA
  10204. End Proc
  10205. Procedure USASUOGGETTOP[O,P,Q]
  10206. If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  10207.  Print NOMEP$(P);" sta usando 1 ";
  10208.  If Btst(1,TIPOO(O))=True
  10209.   Print NOMESRO$(CATEGORIAO(O));
  10210.  Else 
  10211.   Print NOMESCO$(CATEGORIAO(O));
  10212.  End If 
  10213.  Print " su 1 ";
  10214.  If Btst(1,TIPOO(Q))=True
  10215.   Print NOMESRO$(CATEGORIAO(Q))
  10216.  Else 
  10217.   Print NOMESCO$(CATEGORIAO(Q))
  10218.  End If 
  10219. End If 
  10220. End Proc
  10221. Procedure USASUPERSONAGGIO[O,P]
  10222. Locate 0,ULTIMALINEA : Cline 
  10223. If P=0
  10224.  If TIPOCO(CATEGORIAO(O))=%1
  10225.   If Btst(1,TIPOO(O))=True
  10226.    Print "Non puoi mangiarti 1"; : RESTO=True
  10227.    If _MUSICA=False
  10228.     Bell 1
  10229.    End If 
  10230.   Else 
  10231.    COMPIUTAAZIONE=1
  10232.    Print "Hai deciso di mangiarti 1";
  10233.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10234.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10235.    Bset 1,TIPOO(O)
  10236.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10237.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10238.   End If 
  10239.  Else If TIPOCO(CATEGORIAO(O))=%100
  10240.   If Btst(1,TIPOO(O))=True
  10241.    Print "Non puoi difenderti con 1"; : RESTO=True
  10242.    If _MUSICA=False
  10243.     Bell 1
  10244.    End If 
  10245.   Else 
  10246.    COMPIUTAAZIONE=1
  10247.    Print "Hai deciso di difenderti con 1";
  10248.    Bset 2,TIPOO(O)
  10249.   End If 
  10250.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10251.   If Btst(1,TIPOO(O))=True
  10252.    Print "Non puoi leggerti 1"; : RESTO=True
  10253.    If _MUSICA=False
  10254.     Bell 1
  10255.    End If 
  10256.   Else 
  10257.    COMPIUTAAZIONE=1
  10258.    Print "Hai deciso di leggerti 1"; : PERSONAGGIO0DEVELEGGERE=True
  10259.   End If 
  10260.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10261.   If Btst(1,TIPOO(O))=True
  10262.    Print "Non puoi berti 1"; : RESTO=True
  10263.    If _MUSICA=False
  10264.     Bell 1
  10265.    End If 
  10266.   Else 
  10267.    COMPIUTAAZIONE=1
  10268.    Print "Hai deciso di berti 1";
  10269.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10270.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10271.    Bset 1,TIPOO(O)
  10272.    Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10273.    RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10274.   End If 
  10275.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10276.   If Btst(1,TIPOO(O))=True
  10277.    Print "Non puoi ammaliarti con 1"; : RESTO=True
  10278.    If _MUSICA=False
  10279.     Bell 1
  10280.    End If 
  10281.   Else 
  10282.    COMPIUTAAZIONE=1
  10283.    Print "Hai deciso di ammaliarti con 1";
  10284.   End If 
  10285.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10286.   If Btst(1,TIPOO(O))=True
  10287.    Print "Non puoi colpirti con 1"; : RESTO=True
  10288.    If _MUSICA=False
  10289.     Bell 1
  10290.    End If 
  10291.   Else 
  10292.    COMPIUTAAZIONE=1
  10293.    Print "Hai deciso di colpirti con 1";
  10294.    RESISTENZA=RESISTENZAP(0)
  10295.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10296.    For A=0 To NUMEROO
  10297.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10298.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10299.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10300.      End If 
  10301.     End If 
  10302.    Next A
  10303.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10304.   End If 
  10305.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10306.   If Btst(1,TIPOO(O))=True
  10307.    Print "Non puoi colpirti con 1"; : RESTO=True
  10308.    If _MUSICA=False
  10309.     Bell 1
  10310.    End If 
  10311.   Else 
  10312.    COMPIUTAAZIONE=1
  10313.    Print "Hai deciso di colpirti con 1";
  10314.    RESISTENZA=RESISTENZAP(0)
  10315.    Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10316.    For A=0 To NUMEROO
  10317.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10318.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10319.       Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10320.      End If 
  10321.     End If 
  10322.    Next A
  10323.    Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10324.   End If 
  10325.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10326.   If Btst(1,TIPOO(O))=True
  10327.    Print "Non puoi colpirti con 1"; : RESTO=True
  10328.    If _MUSICA=False
  10329.     Bell 1
  10330.    End If 
  10331.   Else 
  10332.    For A=0 To NUMEROO
  10333.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10334.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10335.     End If 
  10336.    Next A
  10337.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10338.     COMPIUTAAZIONE=1
  10339.     Print "Hai deciso di colpirti con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10340.     RESISTENZA=RESISTENZAP(0)
  10341.     For A=0 To NUMEROO
  10342.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10343.       V=A
  10344.      End If 
  10345.     Next A
  10346.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(V))*25
  10347.     For A=0 To NUMEROO
  10348.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10349.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10350.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10351.       End If 
  10352.      End If 
  10353.     Next A
  10354.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10355.    Else 
  10356.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10357.     If _MUSICA=False
  10358.      Bell 1
  10359.     End If 
  10360.    End If 
  10361.   End If 
  10362.  End If 
  10363. Else 
  10364.  If TIPOCO(CATEGORIAO(O))=%1
  10365.   If Btst(1,TIPOO(O))=True
  10366.    Print "Non puoi far mangiare a ";NOMEP$(P);" 1"; : RESTO=True
  10367.    If _MUSICA=False
  10368.     Bell 1
  10369.    End If 
  10370.   Else 
  10371.    COMPIUTAAZIONE=1
  10372.    Print "Hai deciso di far mangiare a ";NOMEP$(P);" 1";
  10373.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10374.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10375.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10376.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10377.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10378.    Bset 1,TIPOO(O)
  10379.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10380.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10381.   End If 
  10382.  Else If TIPOCO(CATEGORIAO(O))=%100
  10383.   If Btst(1,TIPOO(O))=True
  10384.    Print "Non puoi difendere ";NOMEP$(P);" con 1"; : RESTO=True
  10385.    If _MUSICA=False
  10386.     Bell 1
  10387.    End If 
  10388.   Else 
  10389.    COMPIUTAAZIONE=1
  10390.    Print "Hai deciso di difendere ";NOMEP$(P);" con 1";
  10391.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10392.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10393.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10394.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10395.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10396.    Bset 2,TIPOO(O)
  10397.   End If 
  10398.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10399.   If Btst(1,TIPOO(O))=True
  10400.    Print "Non puoi far leggere a ";NOMEP$(P);" 1"; : RESTO=True
  10401.    If _MUSICA=False
  10402.     Bell 1
  10403.    End If 
  10404.   Else 
  10405.    COMPIUTAAZIONE=1
  10406.    Print "Hai deciso di far leggere a ";NOMEP$(P);" 1";
  10407.   End If 
  10408.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10409.   If Btst(1,TIPOO(O))=True
  10410.    Print "Non puoi far bere a ";NOMEP$(P);" 1"; : RESTO=True
  10411.    If _MUSICA=False
  10412.     Bell 1
  10413.    End If 
  10414.   Else 
  10415.    COMPIUTAAZIONE=1
  10416.    Print "Hai deciso di far bere a ";NOMEP$(P);" 1";
  10417.    Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10418.    Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10419.    POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10420.    Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10421.    Inc OGGETTIDATIOLASCIATI(CATEGORIAO(O))
  10422.    Bset 1,TIPOO(O)
  10423.    Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10424.    RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10425.   End If 
  10426.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10427.   If Btst(1,TIPOO(O))=True
  10428.    Print "Non puoi ammaliare ";NOMEP$(P);" con 1"; : RESTO=True
  10429.    If _MUSICA=False
  10430.     Bell 1
  10431.    End If 
  10432.   Else 
  10433.    COMPIUTAAZIONE=1
  10434.    Print "Hai deciso di ammaliare ";NOMEP$(P);" con 1";
  10435.   End If 
  10436.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10437.   If Btst(1,TIPOO(O))=True
  10438.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10439.    If _MUSICA=False
  10440.     Bell 1
  10441.    End If 
  10442.   Else 
  10443.    COMPIUTAAZIONE=1
  10444.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10445.    RESISTENZA=RESISTENZAP(P)
  10446.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10447.    For A=0 To NUMEROO
  10448.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10449.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10450.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10451.      End If 
  10452.     End If 
  10453.    Next A
  10454.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10455.   End If 
  10456.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10457.   If Btst(1,TIPOO(O))=True
  10458.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10459.    If _MUSICA=False
  10460.     Bell 1
  10461.    End If 
  10462.   Else 
  10463.    COMPIUTAAZIONE=1
  10464.    Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10465.    RESISTENZA=RESISTENZAP(P)
  10466.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10467.    For A=0 To NUMEROO
  10468.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10469.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10470.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10471.      End If 
  10472.     End If 
  10473.    Next A
  10474.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10475.   End If 
  10476.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10477.   If Btst(1,TIPOO(O))=True
  10478.    Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10479.    If _MUSICA=False
  10480.     Bell 1
  10481.    End If 
  10482.   Else 
  10483.    For A=0 To NUMEROO
  10484.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10485.      OGGETTIVINCOLANTIPOSSEDUTI=True
  10486.     End If 
  10487.    Next A
  10488.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  10489.     COMPIUTAAZIONE=1
  10490.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10491.     RESISTENZA=RESISTENZAP(0)
  10492.     For A=0 To NUMEROO
  10493.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10494.       V=A
  10495.      End If 
  10496.     Next A
  10497.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10498.     If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10499.      POSIZIONEO(V)= Not P : Bset 0,TIPOO(V)
  10500.      Dec OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10501.      Add PESONETTOP(P),PESOCO(CATEGORIAO(V))
  10502.      Inc OGGETTIDATIOLASCIATI(CATEGORIAO(V))
  10503.     End If 
  10504.     For A=0 To NUMEROO
  10505.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10506.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10507.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10508.       End If 
  10509.      End If 
  10510.     Next A
  10511.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10512.    Else 
  10513.     Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10514.     If _MUSICA=False
  10515.      Bell 1
  10516.     End If 
  10517.    End If 
  10518.   End If 
  10519.  End If 
  10520. End If 
  10521. Print " ";
  10522. If RESTO=True
  10523.  Print NOMESRO$(CATEGORIAO(O));
  10524. Else 
  10525.  Print NOMESCO$(CATEGORIAO(O));
  10526. End If 
  10527. OGGETTOUSANTE=O
  10528. PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
  10529. If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
  10530. Proc _ASPETTA
  10531. If PERSONAGGIO0DEVELEGGERE=True
  10532.  Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10533.  PERSONAGGIO0DEVELEGGERE=False
  10534. End If 
  10535. End Proc
  10536. Procedure USASUPERSONAGGIOP[O,P,Q]
  10537. If P=Q Then Pop Proc
  10538. If Btst(1,TIPOO(O))=False
  10539.  If Btst(2,TIPOP(0))=False
  10540.   PERSONAGGIO0SVEGLIO=True
  10541.  End If 
  10542.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10543.   PERSONAGGIOVISIBILE=True
  10544.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10545.   PERSONAGGIOVISIBILE=True
  10546.  Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
  10547.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10548.    PERSONAGGIOVISIBILE=True
  10549.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10550.    PERSONAGGIOVISIBILE=True
  10551.   End If 
  10552.  End If 
  10553.  If TIPOCO(CATEGORIAO(O))=%1
  10554.   If Q>0
  10555.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10556.     AZIONE$="sta facendo mangiare a "+NOMEP$(Q)+" 1"
  10557.    End If 
  10558.   Else 
  10559.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10560.     AZIONE$="ti sta facendo mangiare 1"
  10561.    End If 
  10562.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10563.   End If 
  10564.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10565.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10566.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10567.   Bset 1,TIPOO(O)
  10568.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10569.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10570.  Else If TIPOCO(CATEGORIAO(O))=%100
  10571.   If Q>0
  10572.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10573.     AZIONE$="sta difendendo "+NOMEP$(Q)+" con 1"
  10574.    End If 
  10575.   Else 
  10576.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10577.     AZIONE$="ti sta difendendo con 1"
  10578.    End If 
  10579.    Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(O))
  10580.   End If 
  10581.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10582.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10583.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10584.   Bset 2,TIPOO(O)
  10585.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10586.   If Q>0
  10587.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10588.     AZIONE$="sta facendo leggere a "+NOMEP$(Q)+" 1"
  10589.    End If 
  10590.   Else 
  10591.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10592.     AZIONE$="ti sta facendo leggere 1" : PERSONAGGIO0DEVELEGGERE=True
  10593.    End If 
  10594.   End If 
  10595.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10596.   If Q>0
  10597.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10598.     AZIONE$="sta facendo bere a "+NOMEP$(Q)+" 1"
  10599.    End If 
  10600.   Else 
  10601.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10602.     AZIONE$="ti sta facendo bere 1"
  10603.    End If 
  10604.    Inc RESTIDELPERSONAGGIO0(CATEGORIAO(O))
  10605.   End If 
  10606.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  10607.   POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  10608.   Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  10609.   Bset 1,TIPOO(O)
  10610.   Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  10611.   RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  10612.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10613.   If Q>0
  10614.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10615.     AZIONE$="sta ammaliando "+NOMEP$(Q)+" con 1"
  10616.    End If 
  10617.   Else 
  10618.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10619.     AZIONE$="ti sta ammaliando con 1"
  10620.    End If 
  10621.   End If 
  10622.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10623.   If Q>0
  10624.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10625.     AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  10626.    End If 
  10627.   Else 
  10628.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10629.     AZIONE$="ti sta colpendo con 1"
  10630.    End If 
  10631.   End If 
  10632.   RESISTENZA=RESISTENZAP(Q)
  10633.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10634.   For A=0 To NUMEROO
  10635.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10636.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10637.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10638.     End If 
  10639.    End If 
  10640.   Next A
  10641.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10642.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10643.   If Q>0
  10644.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10645.     AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  10646.    End If 
  10647.   Else 
  10648.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10649.     AZIONE$="ti sta colpendo con 1"
  10650.    End If 
  10651.   End If 
  10652.   RESISTENZA=RESISTENZAP(Q)
  10653.   Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  10654.   For A=0 To NUMEROO
  10655.    If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10656.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10657.      Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10658.     End If 
  10659.    End If 
  10660.   Next A
  10661.   Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10662.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10663.   For A=0 To NUMEROO
  10664.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10665.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10666.    End If 
  10667.   Next A
  10668.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10669.    If Q>0
  10670.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10671.      AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  10672.     End If 
  10673.    Else 
  10674.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  10675.      AZIONE$="ti sta colpendo con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  10676.     End If 
  10677.    End If 
  10678.    RESISTENZA=RESISTENZAP(Q)
  10679.    For A=0 To NUMEROO
  10680.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10681.      V=A
  10682.     End If 
  10683.    Next A
  10684.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(V))*25
  10685.    If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10686.     If Q=0
  10687.      Inc OGGETTIDELPERSONAGGIO0(CATEGORIAO(V))
  10688.     End If 
  10689.     POSIZIONEO(V)=-1-Q : Bset 0,TIPOO(V)
  10690.     Add PESONETTOP(Q),PESOCO(CATEGORIAO(V))
  10691.    End If 
  10692.    For A=0 To NUMEROO
  10693.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  10694.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10695.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  10696.      End If 
  10697.     End If 
  10698.    Next A
  10699.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  10700.   End If 
  10701.  End If 
  10702.  If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True and AZIONE$<>""
  10703.   Print NOMEP$(P);" ";AZIONE$;" ";NOMESCO$(CATEGORIAO(O))
  10704.  End If 
  10705.  If Q>0 and RESISTENZAP(Q)=0
  10706.   If PERSONAGGIOVISIBILE=True
  10707.    Proc MORTE[Q]
  10708.   End If 
  10709.  End If 
  10710.  If PERSONAGGIO0DEVELEGGERE=True
  10711.   Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  10712.   PERSONAGGIO0DEVELEGGERE=False
  10713.  End If 
  10714. End If 
  10715. End Proc
  10716. Procedure USASUUNOGGETTO[O]
  10717. For A=0 To NUMEROCO
  10718.  If OGGETTINELLUOGO(A)>0
  10719.   Inc CATEGORIEOGGETTI
  10720.  End If 
  10721.  If RESTINELLUOGO(A)>0
  10722.   Inc CATEGORIEOGGETTI
  10723.  End If 
  10724. Next A
  10725. If CATEGORIEOGGETTI>0
  10726.  If CATEGORIEOGGETTI>1
  10727.   Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
  10728.   Curs Off 
  10729.   If OGGETTO$<>""
  10730.    For A=0 To NUMEROO
  10731.     If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  10732.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  10733.       Proc USASUOGGETTO[O,A] : Exit 
  10734.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  10735.       Proc USASUOGGETTO[O,A] : Exit 
  10736.      End If 
  10737.     End If 
  10738.    Next A
  10739.    If A=NUMEROO+1
  10740.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  10741.     If _MUSICA=False
  10742.      Bell 1
  10743.     End If 
  10744.     Proc _ASPETTA
  10745.    End If 
  10746.   End If 
  10747.  Else 
  10748.   For A=0 To NUMEROO
  10749.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  10750.     Proc USASUOGGETTO[O,A] : Exit 
  10751.    End If 
  10752.   Next A
  10753.  End If 
  10754. End If 
  10755. End Proc
  10756. Procedure USASUUNPERSONAGGIO[O]
  10757. For A=0 To NUMEROP
  10758.  If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10759.   Inc PERSONAGGI
  10760.  Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10761.   Inc PERSONAGGI
  10762.  End If 
  10763. Next A
  10764. If PERSONAGGI>1
  10765.  Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
  10766.  Curs Off 
  10767.  If PERSONAGGIO$<>""
  10768.   PERSONAGGIO$=Lower$(PERSONAGGIO$)
  10769.   If PERSONAGGIO$="me"
  10770.    USASUPERSONAGGIO[O,0]
  10771.   Else 
  10772.    For A=1 To NUMEROP
  10773.     If PERSONAGGIO$=Lower$(NOMEP$(A))
  10774.      If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10775.       USASUPERSONAGGIO[O,A] : Exit 
  10776.      Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  10777.       USASUPERSONAGGIO[O,A] : Exit 
  10778.      End If 
  10779.     End If 
  10780.    Next A
  10781.    If A=NUMEROP+1
  10782.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  10783.     If _MUSICA=False
  10784.      Bell 1
  10785.     End If 
  10786.     Proc _ASPETTA
  10787.    End If 
  10788.   End If 
  10789.  End If 
  10790. Else 
  10791.  USASUPERSONAGGIO[O,0]
  10792. End If 
  10793. End Proc
  10794. Procedure USATI[O,P]
  10795. If Btst(1,TIPOO(O))=False
  10796.  If Btst(2,TIPOP(0))=False
  10797.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  10798.    PERSONAGGIOVISIBILE=True
  10799.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  10800.    PERSONAGGIOVISIBILE=True
  10801.   Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
  10802.    PERSONAGGIOVISIBILE=True
  10803.   End If 
  10804.  End If 
  10805.  If PERSONAGGIOVISIBILE=True
  10806.   Print NOMEP$(P);" ";
  10807.  End If 
  10808.  If TIPOCO(CATEGORIAO(O))=%1
  10809.   If PERSONAGGIOVISIBILE=True
  10810.    Print "si sta mangiando 1";
  10811.   End If 
  10812.   Bset 1,TIPOO(O)
  10813.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10814.    Inc RESISTENZAP(P)
  10815.   End If 
  10816.  Else If TIPOCO(CATEGORIAO(O))=%100
  10817.   If PERSONAGGIOVISIBILE=True
  10818.    Print "si sta difendendo con 1";
  10819.   End If 
  10820.   Bset 2,TIPOO(O)
  10821.  Else If TIPOCO(CATEGORIAO(O))=%1000
  10822.   If PERSONAGGIOVISIBILE=True
  10823.    Print "si sta leggendo 1";
  10824.   End If 
  10825.  Else If TIPOCO(CATEGORIAO(O))=%10001
  10826.   If PERSONAGGIOVISIBILE=True
  10827.    Print "si sta bevendo 1";
  10828.   End If 
  10829.   Bset 1,TIPOO(O)
  10830.   If RESISTENZAP(P)<C0STITUZIONEP(P)
  10831.    Inc RESISTENZAP(P)
  10832.   End If 
  10833.  Else If TIPOCO(CATEGORIAO(O))=%100000
  10834.   If PERSONAGGIOVISIBILE=True
  10835.    Print "si sta ammaliando con 1";
  10836.   End If 
  10837.  Else If TIPOCO(CATEGORIAO(O))=%1000000
  10838.   If PERSONAGGIOVISIBILE=True
  10839.    Print "si colpisce con 1";
  10840.   End If 
  10841.   RESISTENZA=RESISTENZAP(P)
  10842.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10843.   For A=0 To NUMEROO
  10844.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10845.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
  10846.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10847.     End If 
  10848.    End If 
  10849.   Next A
  10850.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10851.  Else If TIPOCO(CATEGORIAO(O))=%101000000
  10852.   If PERSONAGGIOVISIBILE=True
  10853.    Print "si colpisce con 1";
  10854.   End If 
  10855.   RESISTENZA=RESISTENZAP(P)
  10856.   Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10857.   For A=0 To NUMEROO
  10858.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10859.     If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10860.      Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10861.     End If 
  10862.    End If 
  10863.   Next A
  10864.   Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10865.  Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10866.   For A=0 To NUMEROO
  10867.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10868.     OGGETTIVINCOLANTIPOSSEDUTI=True
  10869.    End If 
  10870.   Next A
  10871.   If OGGETTIVINCOLANTIPOSSEDUTI=True
  10872.    If PERSONAGGIOVISIBILE=True
  10873.     Print "si colpisce con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10874.    End If 
  10875.    RESISTENZA=RESISTENZAP(0)
  10876.    For A=0 To NUMEROO
  10877.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10878.      V=A
  10879.     End If 
  10880.    Next A
  10881.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10882.    For A=0 To NUMEROO
  10883.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10884.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10885.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10886.      End If 
  10887.     End If 
  10888.    Next A
  10889.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10890.   End If 
  10891.  End If 
  10892.  If PERSONAGGIOVISIBILE=True
  10893.   Print " ";NOMESCO$(CATEGORIAO(O))
  10894.  End If 
  10895.  If P>0 and RESISTENZAP(P)=0
  10896.   If PERSONAGGIOVISIBILE=True
  10897.    Proc MORTE[P]
  10898.   End If 
  10899.  End If 
  10900. End If 
  10901. End Proc
  10902. Procedure USATIUNO[AZIONE,P]
  10903. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10904. For A=0 To NUMEROO
  10905.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10906.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10907.   B=A
  10908.  End If 
  10909. Next A
  10910. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10911.  Pop Proc
  10912. End If 
  10913. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10914.  A=B
  10915. Else 
  10916.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10917.  B=0
  10918.  For A=0 To NUMEROO
  10919.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10920.    OGGETTODELPERSONAGGIOP(B)=A
  10921.    Inc B
  10922.   End If 
  10923.  Next A
  10924.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10925. End If 
  10926. Proc USATI[A,P]
  10927. End Proc
  10928. Procedure USATIUNOA[AZIONE,P]
  10929. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10930. For A=0 To NUMEROO
  10931.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10932.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10933.   B=A
  10934.  End If 
  10935. Next A
  10936. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10937.  Pop Proc
  10938. End If 
  10939. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10940.  A=B
  10941. Else 
  10942.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10943.  B=0
  10944.  For A=0 To NUMEROO
  10945.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  10946.    OGGETTODELPERSONAGGIOP(B)=A
  10947.    Inc B
  10948.   End If 
  10949.  Next A
  10950.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10951. End If 
  10952. Proc USATI[A,P]
  10953. End Proc
  10954. Procedure USATIUNOTA[AZIONE,P]
  10955. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10956. For A=0 To NUMEROO
  10957.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10958.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10959.   B=A
  10960.  End If 
  10961. Next A
  10962. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10963.  Pop Proc
  10964. End If 
  10965. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10966.  A=B
  10967. Else 
  10968.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10969.  B=0
  10970.  For A=0 To NUMEROO
  10971.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  10972.    OGGETTODELPERSONAGGIOP(B)=A
  10973.    Inc B
  10974.   End If 
  10975.  Next A
  10976.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  10977. End If 
  10978. Proc USATI[A,P]
  10979. End Proc
  10980. Procedure USAUNOSUAO[AZIONE,P]
  10981. NUMEROOGGETTIDELPERSONAGGIOP=-1
  10982. For A=0 To NUMEROO
  10983.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10984.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  10985.   B=A
  10986.  End If 
  10987. Next A
  10988. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  10989.  Pop Proc
  10990. End If 
  10991. If NUMEROOGGETTIDELPERSONAGGIOP=0
  10992.  A=B
  10993. Else 
  10994.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  10995.  B=0
  10996.  For A=0 To NUMEROO
  10997.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10998.    OGGETTODELPERSONAGGIOP(B)=A
  10999.    Inc B
  11000.   End If 
  11001.  Next A
  11002.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11003. End If 
  11004. For B=0 To NUMEROO
  11005.  If POSIZIONEO(B)=POSIZIONEP(P)
  11006.   USASUOGGETTOP[A,P,B]
  11007.   Dec PARAAAZIONEP(AZIONE,P)
  11008.   If PARAAAZIONEP(AZIONE,P)=0
  11009.    FINEA(AZIONE,P)=True
  11010.   End If 
  11011.   Exit 
  11012.  End If 
  11013. Next B
  11014. End Proc
  11015. Procedure USAUNOSUAOB[AZIONE,P]
  11016. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11017. For A=0 To NUMEROO
  11018.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11019.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11020.   B=A
  11021.  End If 
  11022. Next A
  11023. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11024.  Pop Proc
  11025. End If 
  11026. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11027.  A=B
  11028. Else 
  11029.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11030.  B=0
  11031.  For A=0 To NUMEROO
  11032.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11033.    OGGETTODELPERSONAGGIOP(B)=A
  11034.    Inc B
  11035.   End If 
  11036.  Next A
  11037.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11038. End If 
  11039. For B=0 To NUMEROO
  11040.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11041.   USASUOGGETTOP[A,P,B]
  11042.   Dec PARAAAZIONEP(AZIONE,P)
  11043.   If PARAAAZIONEP(AZIONE,P)=0
  11044.    FINEA(AZIONE,P)=True
  11045.   End If 
  11046.   Exit 
  11047.  End If 
  11048. Next B
  11049. End Proc
  11050. Procedure USAUNOSUAOTB[AZIONE,P]
  11051. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11052. For A=0 To NUMEROO
  11053.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11054.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11055.   B=A
  11056.  End If 
  11057. Next A
  11058. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11059.  Pop Proc
  11060. End If 
  11061. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11062.  A=B
  11063. Else 
  11064.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11065.  B=0
  11066.  For A=0 To NUMEROO
  11067.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11068.    OGGETTODELPERSONAGGIOP(B)=A
  11069.    Inc B
  11070.   End If 
  11071.  Next A
  11072.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11073. End If 
  11074. For B=0 To NUMEROO
  11075.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11076.   USASUOGGETTOP[A,P,B]
  11077.   Dec PARAAAZIONEP(AZIONE,P)
  11078.   If PARAAAZIONEP(AZIONE,P)=0
  11079.    FINEA(AZIONE,P)=True
  11080.   End If 
  11081.   Exit 
  11082.  End If 
  11083. Next B
  11084. End Proc
  11085. Procedure USAUNOSUAP[AZIONE,P]
  11086. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11087. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11088.  PERSONAGGIOTROVATO=A
  11089. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11090.  PERSONAGGIOTROVATO=A
  11091. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11092.  PERSONAGGIOTROVATO=A
  11093. End If 
  11094. If PERSONAGGIOTROVATO>-1
  11095.  For A=0 To NUMEROO
  11096.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11097.    USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
  11098.    Dec PARAAAZIONEP(AZIONE,P)
  11099.    If PARAAAZIONEP(AZIONE,P)=0
  11100.     FINEA(AZIONE,P)=True
  11101.    End If 
  11102.    Exit 
  11103.   End If 
  11104.  Next A
  11105. End If 
  11106. End Proc
  11107. Procedure USAUNOSUPA[AZIONE,P]
  11108. A=PARAAAZIONEP(AZIONE,P)
  11109. For B=0 To NUMEROO
  11110.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
  11111.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11112.    Proc USASUPERSONAGGIOP[B,P,A]
  11113.    Exit 
  11114.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11115.    Proc USASUPERSONAGGIOP[B,P,A]
  11116.    Exit 
  11117.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11118.    Proc USASUPERSONAGGIOP[B,P,A]
  11119.    Exit 
  11120.   End If 
  11121.  End If 
  11122. Next B
  11123. End Proc
  11124. Procedure USAUNOASUBO[AZIONE,P]
  11125. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11126. For A=0 To NUMEROO
  11127.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11128.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11129.   B=A
  11130.  End If 
  11131. Next A
  11132. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11133.  Pop Proc
  11134. End If 
  11135. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11136.  A=B
  11137. Else 
  11138.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11139.  B=0
  11140.  For A=0 To NUMEROO
  11141.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11142.    OGGETTODELPERSONAGGIOP(B)=A
  11143.    Inc B
  11144.   End If 
  11145.  Next A
  11146.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11147. End If 
  11148. For B=0 To NUMEROO
  11149.  If POSIZIONEO(B)=POSIZIONEP(P)
  11150.   USASUOGGETTOP[A,P,B]
  11151.   Dec PARABAZIONEP(AZIONE,P)
  11152.   If PARABAZIONEP(AZIONE,P)=0
  11153.    FINEA(AZIONE,P)=True
  11154.   End If 
  11155.   Exit 
  11156.  End If 
  11157. Next B
  11158. End Proc
  11159. Procedure USAUNOASUBOC[AZIONE,P]
  11160. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11161. For A=0 To NUMEROO
  11162.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11163.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11164.   B=A
  11165.  End If 
  11166. Next A
  11167. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11168.  Pop Proc
  11169. End If 
  11170. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11171.  A=B
  11172. Else 
  11173.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11174.  B=0
  11175.  For A=0 To NUMEROO
  11176.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11177.    OGGETTODELPERSONAGGIOP(B)=A
  11178.    Inc B
  11179.   End If 
  11180.  Next A
  11181.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11182. End If 
  11183. For B=0 To NUMEROO
  11184.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11185.   USASUOGGETTOP[A,P,B]
  11186.   Dec PARABAZIONEP(AZIONE,P)
  11187.   If PARABAZIONEP(AZIONE,P)=0
  11188.    FINEA(AZIONE,P)=True
  11189.   End If 
  11190.   Exit 
  11191.  End If 
  11192. Next B
  11193. End Proc
  11194. Procedure USAUNOASUBOTC[AZIONE,P]
  11195. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11196. For A=0 To NUMEROO
  11197.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11198.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11199.   B=A
  11200.  End If 
  11201. Next A
  11202. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11203.  Pop Proc
  11204. End If 
  11205. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11206.  A=B
  11207. Else 
  11208.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11209.  B=0
  11210.  For A=0 To NUMEROO
  11211.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11212.    OGGETTODELPERSONAGGIOP(B)=A
  11213.    Inc B
  11214.   End If 
  11215.  Next A
  11216.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11217. End If 
  11218. For B=0 To NUMEROO
  11219.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11220.   USASUOGGETTOP[A,P,B]
  11221.   Dec PARABAZIONEP(AZIONE,P)
  11222.   If PARABAZIONEP(AZIONE,P)=0
  11223.    FINEA(AZIONE,P)=True
  11224.   End If 
  11225.   Exit 
  11226.  End If 
  11227. Next B
  11228. End Proc
  11229. Procedure USAUNOASUBP[AZIONE,P]
  11230. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11231. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11232.  PERSONAGGIOTROVATO=A
  11233. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11234.  PERSONAGGIOTROVATO=A
  11235. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11236.  PERSONAGGIOTROVATO=A
  11237. End If 
  11238. If PERSONAGGIOTROVATO>-1
  11239.  For A=0 To NUMEROO
  11240.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11241.    USASUPERSONAGGIOP[A,P,B]
  11242.    Dec PARABAZIONEP(AZIONE,P)
  11243.    If PARABAZIONEP(AZIONE,P)=0
  11244.     FINEA(AZIONE,P)=True
  11245.    End If 
  11246.    Exit 
  11247.   End If 
  11248.  Next A
  11249. End If 
  11250. End Proc
  11251. Procedure USAUNOASUPB[AZIONE,P]
  11252. A=PARABAZIONEP(AZIONE,P)
  11253. For B=0 To NUMEROO
  11254.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
  11255.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11256.    Proc USASUPERSONAGGIOP[B,P,A]
  11257.    Exit 
  11258.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11259.    Proc USASUPERSONAGGIOP[B,P,A]
  11260.    Exit 
  11261.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11262.    Proc USASUPERSONAGGIOP[B,P,A]
  11263.    Exit 
  11264.   End If 
  11265.  End If 
  11266. Next B
  11267. End Proc
  11268. Procedure USAUNOTASUBO[AZIONE,P]
  11269. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11270. For A=0 To NUMEROO
  11271.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11272.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11273.   B=A
  11274.  End If 
  11275. Next A
  11276. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11277.  Pop Proc
  11278. End If 
  11279. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11280.  A=B
  11281. Else 
  11282.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11283.  B=0
  11284.  For A=0 To NUMEROO
  11285.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11286.    OGGETTODELPERSONAGGIOP(B)=A
  11287.    Inc B
  11288.   End If 
  11289.  Next A
  11290.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11291. End If 
  11292. For B=0 To NUMEROO
  11293.  If POSIZIONEO(B)=POSIZIONEP(P)
  11294.   USASUOGGETTOP[A,P,B]
  11295.   Dec PARABAZIONEP(AZIONE,P)
  11296.   If PARABAZIONEP(AZIONE,P)=0
  11297.    FINEA(AZIONE,P)=True
  11298.   End If 
  11299.   Exit 
  11300.  End If 
  11301. Next B
  11302. End Proc
  11303. Procedure USAUNOTASUBOC[AZIONE,P]
  11304. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11305. For A=0 To NUMEROO
  11306.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11307.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11308.   B=A
  11309.  End If 
  11310. Next A
  11311. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11312.  Pop Proc
  11313. End If 
  11314. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11315.  A=B
  11316. Else 
  11317.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11318.  B=0
  11319.  For A=0 To NUMEROO
  11320.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11321.    OGGETTODELPERSONAGGIOP(B)=A
  11322.    Inc B
  11323.   End If 
  11324.  Next A
  11325.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11326. End If 
  11327. For B=0 To NUMEROO
  11328.  If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11329.   USASUOGGETTOP[A,P,B]
  11330.   Dec PARABAZIONEP(AZIONE,P)
  11331.   If PARABAZIONEP(AZIONE,P)=0
  11332.    FINEA(AZIONE,P)=True
  11333.   End If 
  11334.   Exit 
  11335.  End If 
  11336. Next B
  11337. End Proc
  11338. Procedure USAUNOTASUBOTC[AZIONE,P]
  11339. NUMEROOGGETTIDELPERSONAGGIOP=-1
  11340. For A=0 To NUMEROO
  11341.  If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11342.   Inc NUMEROOGGETTIDELPERSONAGGIOP
  11343.   B=A
  11344.  End If 
  11345. Next A
  11346. If NUMEROOGGETTIDELPERSONAGGIOP=-1
  11347.  Pop Proc
  11348. End If 
  11349. If NUMEROOGGETTIDELPERSONAGGIOP=0
  11350.  A=B
  11351. Else 
  11352.  Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTIDELPERSONAGGIOP)
  11353.  B=0
  11354.  For A=0 To NUMEROO
  11355.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11356.    OGGETTODELPERSONAGGIOP(B)=A
  11357.    Inc B
  11358.   End If 
  11359.  Next A
  11360.  A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTIDELPERSONAGGIOP))
  11361. End If 
  11362. For B=0 To NUMEROO
  11363.  If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11364.   USASUOGGETTOP[A,P,B]
  11365.   Dec PARABAZIONEP(AZIONE,P)
  11366.   If PARABAZIONEP(AZIONE,P)=0
  11367.    FINEA(AZIONE,P)=True
  11368.   End If 
  11369.   Exit 
  11370.  End If 
  11371. Next B
  11372. End Proc
  11373. Procedure USAUNOTASUBP[AZIONE,P]
  11374. A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11375. If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11376.  PERSONAGGIOTROVATO=A
  11377. Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11378.  PERSONAGGIOTROVATO=A
  11379. Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11380.  PERSONAGGIOTROVATO=A
  11381. End If 
  11382. If PERSONAGGIOTROVATO>-1
  11383.  For A=0 To NUMEROO
  11384.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11385.    USASUPERSONAGGIOP[A,P,B]
  11386.    Dec PARABAZIONEP(AZIONE,P)
  11387.    If PARABAZIONEP(AZIONE,P)=0
  11388.     FINEA(AZIONE,P)=True
  11389.    End If 
  11390.    Exit 
  11391.   End If 
  11392.  Next A
  11393. End If 
  11394. End Proc
  11395. Procedure USAUNOTASUPB[AZIONE,P]
  11396. A=PARABAZIONEP(AZIONE,P)
  11397. For B=0 To NUMEROO
  11398.  If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
  11399.   If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11400.    Proc USASUPERSONAGGIOP[B,P,A]
  11401.    Exit 
  11402.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11403.    Proc USASUPERSONAGGIOP[B,P,A]
  11404.    Exit 
  11405.   Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11406.    Proc USASUPERSONAGGIOP[B,P,A]
  11407.    Exit 
  11408.   End If 
  11409.  End If 
  11410. Next B
  11411. End Proc
  11412. Procedure _ASPETTA
  11413. Wait 200
  11414. End Proc
  11415. Procedure _ORDINALUOGHI[NUMEROLUOGHIMAPPA,LARGHEZZAMAPPALUOGHI,LUOGODIPARTENZA,LIMITI]
  11416. Dim D(7)
  11417. D(0)=LARGHEZZAMAPPALUOGHI
  11418. D(1)=LARGHEZZAMAPPALUOGHI+1
  11419. D(2)=1
  11420. D(3)=-LARGHEZZAMAPPALUOGHI+1
  11421. D(4)=-LARGHEZZAMAPPALUOGHI
  11422. D(5)=-LARGHEZZAMAPPALUOGHI-1
  11423. D(6)=-1
  11424. D(7)=LARGHEZZAMAPPALUOGHI-1
  11425. For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11426.  E=DREZIONEL(0,A)/$10000
  11427.  DREZIONEL(0,A)=D(0)+A+E*$10000
  11428.  E=DREZIONEL(1,A)/$10000
  11429.  DREZIONEL(1,A)=D(1)+A+E*$10000
  11430.  E=DREZIONEL(2,A)/$10000
  11431.  DREZIONEL(2,A)=D(2)+A+E*$10000
  11432.  E=DREZIONEL(3,A)/$10000
  11433.  DREZIONEL(3,A)=D(3)+A+E*$10000
  11434.  E=DREZIONEL(4,A)/$10000
  11435.  DREZIONEL(4,A)=D(4)+A+E*$10000
  11436.  E=DREZIONEL(5,A)/$10000
  11437.  DREZIONEL(5,A)=D(5)+A+E*$10000
  11438.  E=DREZIONEL(6,A)/$10000
  11439.  DREZIONEL(6,A)=D(6)+A+E*$10000
  11440.  E=DREZIONEL(7,A)/$10000
  11441.  DREZIONEL(7,A)=D(7)+A+E*$10000
  11442.  E=DREZIONEL(8,A)/$10000
  11443.  DREZIONEL(8,A)=$FFFF+E*$10000
  11444.  E=DREZIONEL(9,A)/$10000
  11445.  DREZIONEL(9,A)=$FFFF+E*$10000
  11446. Next A
  11447. If LIMITI=True
  11448.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11449.   If A=LUOGODIPARTENZA
  11450.    E=DREZIONEL(0,A)/$10000
  11451.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11452.    E=DREZIONEL(1,A)/$10000
  11453.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11454.    E=DREZIONEL(2,A)/$10000
  11455.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11456.    E=DREZIONEL(3,A)/$10000
  11457.    DREZIONEL(3,A)=$FFFF+E*$10000
  11458.    E=DREZIONEL(4,A)/$10000
  11459.    DREZIONEL(4,A)=$FFFF+E*$10000
  11460.    E=DREZIONEL(5,A)/$10000
  11461.    DREZIONEL(5,A)=$FFFF+E*$10000
  11462.    E=DREZIONEL(6,A)/$10000
  11463.    DREZIONEL(6,A)=$FFFF+E*$10000
  11464.    E=DREZIONEL(7,A)/$10000
  11465.    DREZIONEL(7,A)=$FFFF+E*$10000
  11466.   End If 
  11467.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11468.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11469.     E=DREZIONEL(0,A)/$10000
  11470.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11471.     E=DREZIONEL(1,A)/$10000
  11472.     DREZIONEL(1,A)=$FFFF+E*$10000
  11473.     E=DREZIONEL(2,A)/$10000
  11474.     DREZIONEL(2,A)=$FFFF+E*$10000
  11475.     E=DREZIONEL(3,A)/$10000
  11476.     DREZIONEL(3,A)=$FFFF+E*$10000
  11477.     E=DREZIONEL(4,A)/$10000
  11478.     DREZIONEL(4,A)=$FFFF+E*$10000
  11479.     E=DREZIONEL(5,A)/$10000
  11480.     DREZIONEL(5,A)=$FFFF+E*$10000
  11481.     E=DREZIONEL(6,A)/$10000
  11482.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11483.     E=DREZIONEL(7,A)/$10000
  11484.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11485.    Else 
  11486.     E=DREZIONEL(0,A)/$10000
  11487.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11488.     E=DREZIONEL(1,A)/$10000
  11489.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11490.     E=DREZIONEL(2,A)/$10000
  11491.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11492.     E=DREZIONEL(3,A)/$10000
  11493.     DREZIONEL(3,A)=$FFFF+E*$10000
  11494.     E=DREZIONEL(4,A)/$10000
  11495.     DREZIONEL(4,A)=$FFFF+E*$10000
  11496.     E=DREZIONEL(5,A)/$10000
  11497.     DREZIONEL(5,A)=$FFFF+E*$10000
  11498.     E=DREZIONEL(6,A)/$10000
  11499.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11500.     E=DREZIONEL(7,A)/$10000
  11501.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11502.    End If 
  11503.   End If 
  11504.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11505.    If A=B
  11506.     E=DREZIONEL(0,A)/$10000
  11507.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11508.     E=DREZIONEL(1,A)/$10000
  11509.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11510.     E=DREZIONEL(2,A)/$10000
  11511.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11512.     E=DREZIONEL(3,A)/$10000
  11513.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11514.     E=DREZIONEL(4,A)/$10000
  11515.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11516.     E=DREZIONEL(5,A)/$10000
  11517.     DREZIONEL(5,A)=$FFFF+E*$10000
  11518.     E=DREZIONEL(6,A)/$10000
  11519.     DREZIONEL(6,A)=$FFFF+E*$10000
  11520.     E=DREZIONEL(7,A)/$10000
  11521.     DREZIONEL(7,A)=$FFFF+E*$10000
  11522.    End If 
  11523.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11524.     E=DREZIONEL(0,A)/$10000
  11525.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11526.     E=DREZIONEL(1,A)/$10000
  11527.     DREZIONEL(1,A)=$FFFF+E*$10000
  11528.     E=DREZIONEL(2,A)/$10000
  11529.     DREZIONEL(2,A)=$FFFF+E*$10000
  11530.     E=DREZIONEL(3,A)/$10000
  11531.     DREZIONEL(3,A)=$FFFF+E*$10000
  11532.     E=DREZIONEL(4,A)/$10000
  11533.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11534.     E=DREZIONEL(5,A)/$10000
  11535.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11536.     E=DREZIONEL(6,A)/$10000
  11537.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11538.     E=DREZIONEL(7,A)/$10000
  11539.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11540.    End If 
  11541.   Next B
  11542.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11543.    E=DREZIONEL(0,A)/$10000
  11544.    DREZIONEL(0,A)=$FFFF+E*$10000
  11545.    E=DREZIONEL(1,A)/$10000
  11546.    DREZIONEL(1,A)=$FFFF+E*$10000
  11547.    E=DREZIONEL(2,A)/$10000
  11548.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11549.    E=DREZIONEL(3,A)/$10000
  11550.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11551.    E=DREZIONEL(4,A)/$10000
  11552.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11553.    E=DREZIONEL(5,A)/$10000
  11554.    DREZIONEL(5,A)=$FFFF+E*$10000
  11555.    E=DREZIONEL(6,A)/$10000
  11556.    DREZIONEL(6,A)=$FFFF+E*$10000
  11557.    E=DREZIONEL(7,A)/$10000
  11558.    DREZIONEL(7,A)=$FFFF+E*$10000
  11559.   End If 
  11560.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11561.    E=DREZIONEL(0,A)/$10000
  11562.    DREZIONEL(0,A)=$FFFF+E*$10000
  11563.    E=DREZIONEL(1,A)/$10000
  11564.    DREZIONEL(1,A)=$FFFF+E*$10000
  11565.    E=DREZIONEL(2,A)/$10000
  11566.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11567.    E=DREZIONEL(3,A)/$10000
  11568.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11569.    E=DREZIONEL(4,A)/$10000
  11570.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11571.    E=DREZIONEL(5,A)/$10000
  11572.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11573.    E=DREZIONEL(6,A)/$10000
  11574.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11575.    E=DREZIONEL(7,A)/$10000
  11576.    DREZIONEL(7,A)=$FFFF+E*$10000
  11577.   End If 
  11578.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11579.    E=DREZIONEL(0,A)/$10000
  11580.    DREZIONEL(0,A)=$FFFF+E*$10000
  11581.    E=DREZIONEL(1,A)/$10000
  11582.    DREZIONEL(1,A)=$FFFF+E*$10000
  11583.    E=DREZIONEL(2,A)/$10000
  11584.    DREZIONEL(2,A)=$FFFF+E*$10000
  11585.    E=DREZIONEL(3,A)/$10000
  11586.    DREZIONEL(3,A)=$FFFF+E*$10000
  11587.    E=DREZIONEL(4,A)/$10000
  11588.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11589.    E=DREZIONEL(5,A)/$10000
  11590.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11591.    E=DREZIONEL(6,A)/$10000
  11592.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11593.    E=DREZIONEL(7,A)/$10000
  11594.    DREZIONEL(7,A)=$FFFF+E*$10000
  11595.   End If 
  11596.  Next A
  11597. Else 
  11598.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11599.   If A=LUOGODIPARTENZA
  11600.    E=DREZIONEL(0,A)/$10000
  11601.    DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  11602.    E=DREZIONEL(1,A)/$10000
  11603.    DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  11604.    E=DREZIONEL(2,A)/$10000
  11605.    DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  11606.    E=DREZIONEL(3,A)/$10000
  11607.    DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11608.    E=DREZIONEL(4,A)/$10000
  11609.    DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11610.    E=DREZIONEL(5,A)/$10000
  11611.    DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11612.    E=DREZIONEL(6,A)/$10000
  11613.    DREZIONEL(6,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11614.    E=DREZIONEL(7,A)/$10000
  11615.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11616.   End If 
  11617.   If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  11618.    If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  11619.     E=DREZIONEL(0,A)/$10000
  11620.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11621.     E=DREZIONEL(1,A)/$10000
  11622.     DREZIONEL(1,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI+E*$10000
  11623.     E=DREZIONEL(2,A)/$10000
  11624.     DREZIONEL(2,A)=LUOGODIPARTENZA+E*$10000
  11625.     E=DREZIONEL(3,A)/$10000
  11626.     DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11627.     E=DREZIONEL(4,A)/$10000
  11628.     DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11629.     E=DREZIONEL(5,A)/$10000
  11630.     DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-1+E*$10000
  11631.     E=DREZIONEL(6,A)/$10000
  11632.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11633.     E=DREZIONEL(7,A)/$10000
  11634.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11635.    Else 
  11636.     E=DREZIONEL(0,A)/$10000
  11637.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11638.     E=DREZIONEL(1,A)/$10000
  11639.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11640.     E=DREZIONEL(2,A)/$10000
  11641.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11642.     E=DREZIONEL(3,A)/$10000
  11643.     DREZIONEL(3,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  11644.     E=DREZIONEL(4,A)/$10000
  11645.     DREZIONEL(4,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11646.     E=DREZIONEL(5,A)/$10000
  11647.     DREZIONEL(5,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+E*$10000
  11648.     E=DREZIONEL(6,A)/$10000
  11649.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11650.     E=DREZIONEL(7,A)/$10000
  11651.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11652.    End If 
  11653.   End If 
  11654.   For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  11655.    If A=B
  11656.     E=DREZIONEL(0,A)/$10000
  11657.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11658.     E=DREZIONEL(1,A)/$10000
  11659.     DREZIONEL(1,A)=D(1)+A+E*$10000
  11660.     E=DREZIONEL(2,A)/$10000
  11661.     DREZIONEL(2,A)=D(2)+A+E*$10000
  11662.     E=DREZIONEL(3,A)/$10000
  11663.     DREZIONEL(3,A)=D(3)+A+E*$10000
  11664.     E=DREZIONEL(4,A)/$10000
  11665.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11666.     E=DREZIONEL(5,A)/$10000
  11667.     DREZIONEL(5,A)=A-1+E*$10000
  11668.     E=DREZIONEL(6,A)/$10000
  11669.     DREZIONEL(6,A)=A+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11670.     E=DREZIONEL(7,A)/$10000
  11671.     DREZIONEL(7,A)=A+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  11672.    End If 
  11673.    If A=B+LARGHEZZAMAPPALUOGHI-1
  11674.     E=DREZIONEL(0,A)/$10000
  11675.     DREZIONEL(0,A)=D(0)+A+E*$10000
  11676.     E=DREZIONEL(1,A)/$10000
  11677.     DREZIONEL(1,A)=A+1+E*$10000
  11678.     E=DREZIONEL(2,A)/$10000
  11679.     DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11680.     E=DREZIONEL(3,A)/$10000
  11681.     DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11682.     E=DREZIONEL(4,A)/$10000
  11683.     DREZIONEL(4,A)=D(4)+A+E*$10000
  11684.     E=DREZIONEL(5,A)/$10000
  11685.     DREZIONEL(5,A)=D(5)+A+E*$10000
  11686.     E=DREZIONEL(6,A)/$10000
  11687.     DREZIONEL(6,A)=D(6)+A+E*$10000
  11688.     E=DREZIONEL(7,A)/$10000
  11689.     DREZIONEL(7,A)=D(7)+A+E*$10000
  11690.    End If 
  11691.   Next B
  11692.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  11693.    E=DREZIONEL(0,A)/$10000
  11694.    DREZIONEL(0,A)=LUOGODIPARTENZA+E*$10000
  11695.    E=DREZIONEL(1,A)/$10000
  11696.    DREZIONEL(1,A)=LUOGODIPARTENZA+1+E*$10000
  11697.    E=DREZIONEL(2,A)/$10000
  11698.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11699.    E=DREZIONEL(3,A)/$10000
  11700.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11701.    E=DREZIONEL(4,A)/$10000
  11702.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11703.    E=DREZIONEL(5,A)/$10000
  11704.    DREZIONEL(5,A)=A-1+E*$10000
  11705.    E=DREZIONEL(6,A)/$10000
  11706.    DREZIONEL(6,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  11707.    E=DREZIONEL(7,A)/$10000
  11708.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11709.   End If 
  11710.   If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11711.    E=DREZIONEL(0,A)/$10000
  11712.    DREZIONEL(0,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11713.    E=DREZIONEL(1,A)/$10000
  11714.    DREZIONEL(1,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI+E*$10000
  11715.    E=DREZIONEL(2,A)/$10000
  11716.    DREZIONEL(2,A)=D(2)+A+E*$10000
  11717.    E=DREZIONEL(3,A)/$10000
  11718.    DREZIONEL(3,A)=D(3)+A+E*$10000
  11719.    E=DREZIONEL(4,A)/$10000
  11720.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11721.    E=DREZIONEL(5,A)/$10000
  11722.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11723.    E=DREZIONEL(6,A)/$10000
  11724.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11725.    E=DREZIONEL(7,A)/$10000
  11726.    DREZIONEL(7,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11727.   End If 
  11728.   If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  11729.    E=DREZIONEL(0,A)/$10000
  11730.    DREZIONEL(0,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  11731.    E=DREZIONEL(1,A)/$10000
  11732.    DREZIONEL(1,A)=LUOGODIPARTENZA+E*$10000
  11733.    E=DREZIONEL(2,A)/$10000
  11734.    DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  11735.    E=DREZIONEL(3,A)/$10000
  11736.    DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  11737.    E=DREZIONEL(4,A)/$10000
  11738.    DREZIONEL(4,A)=D(4)+A+E*$10000
  11739.    E=DREZIONEL(5,A)/$10000
  11740.    DREZIONEL(5,A)=D(5)+A+E*$10000
  11741.    E=DREZIONEL(6,A)/$10000
  11742.    DREZIONEL(6,A)=D(6)+A+E*$10000
  11743.    E=DREZIONEL(7,A)/$10000
  11744.    DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  11745.   End If 
  11746.  Next A
  11747. End If 
  11748. End Proc
  11749. Procedure _ORDINASTANZE[E,NUMEROSTANZEMAPPA,LARGHEZZAMAPPASTANZE,STANZADIPARTENZA]
  11750. Dim D(7)
  11751. D(0)=LARGHEZZAMAPPASTANZE
  11752. D(1)=LARGHEZZAMAPPASTANZE+1
  11753. D(2)=1
  11754. D(3)=-LARGHEZZAMAPPASTANZE+1
  11755. D(4)=-LARGHEZZAMAPPASTANZE
  11756. D(5)=-LARGHEZZAMAPPASTANZE-1
  11757. D(6)=-1
  11758. D(7)=LARGHEZZAMAPPASTANZE-1
  11759. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11760.  DREZIONES(0,A,E)=D(0)+A+E*$10000
  11761.  DREZIONES(1,A,E)=D(1)+A+E*$10000
  11762.  DREZIONES(2,A,E)=D(2)+A+E*$10000
  11763.  DREZIONES(3,A,E)=D(3)+A+E*$10000
  11764.  DREZIONES(4,A,E)=D(4)+A+E*$10000
  11765.  DREZIONES(5,A,E)=D(5)+A+E*$10000
  11766.  DREZIONES(6,A,E)=D(6)+A+E*$10000
  11767.  DREZIONES(7,A,E)=D(7)+A+E*$10000
  11768.  DREZIONES(8,A,E)=$FFFF+E*$10000
  11769.  DREZIONES(9,A,E)=$FFFF+E*$10000
  11770. Next A
  11771. For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11772.  If A=STANZADIPARTENZA
  11773.   DREZIONES(0,A,E)=D(0)+STANZADIPARTENZA+E*$10000
  11774.   DREZIONES(1,A,E)=D(1)+STANZADIPARTENZA+E*$10000
  11775.   DREZIONES(2,A,E)=D(2)+STANZADIPARTENZA+E*$10000
  11776.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11777.   DREZIONES(4,A,E)=$FFFF+E*$10000
  11778.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11779.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11780.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11781.  End If 
  11782.  If A>STANZADIPARTENZA and A<STANZADIPARTENZA+LARGHEZZAMAPPASTANZE
  11783.   If A=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE-1
  11784.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11785.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11786.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11787.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11788.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11789.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11790.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11791.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11792.   Else 
  11793.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11794.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11795.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11796.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11797.    DREZIONES(4,A,E)=$FFFF+E*$10000
  11798.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11799.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11800.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11801.   End If 
  11802.  End If 
  11803.  For B=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE To STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE Step LARGHEZZAMAPPASTANZE
  11804.   If A=B
  11805.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11806.    DREZIONES(1,A,E)=D(1)+A+E*$10000
  11807.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  11808.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  11809.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11810.    DREZIONES(5,A,E)=$FFFF+E*$10000
  11811.    DREZIONES(6,A,E)=$FFFF+E*$10000
  11812.    DREZIONES(7,A,E)=$FFFF+E*$10000
  11813.   End If 
  11814.   If A=B+LARGHEZZAMAPPASTANZE-1
  11815.    DREZIONES(0,A,E)=D(0)+A+E*$10000
  11816.    DREZIONES(1,A,E)=$FFFF+E*$10000
  11817.    DREZIONES(2,A,E)=$FFFF+E*$10000
  11818.    DREZIONES(3,A,E)=$FFFF+E*$10000
  11819.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  11820.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  11821.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  11822.    DREZIONES(7,A,E)=D(7)+A+E*$10000
  11823.   End If 
  11824.  Next B
  11825.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1
  11826.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11827.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11828.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11829.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11830.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11831.   DREZIONES(5,A,E)=$FFFF+E*$10000
  11832.   DREZIONES(6,A,E)=$FFFF+E*$10000
  11833.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11834.  End If 
  11835.  If A>STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1 and A<STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11836.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11837.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11838.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  11839.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  11840.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11841.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11842.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11843.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11844.  End If 
  11845.  If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA
  11846.   DREZIONES(0,A,E)=$FFFF+E*$10000
  11847.   DREZIONES(1,A,E)=$FFFF+E*$10000
  11848.   DREZIONES(2,A,E)=$FFFF+E*$10000
  11849.   DREZIONES(3,A,E)=$FFFF+E*$10000
  11850.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  11851.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  11852.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  11853.   DREZIONES(7,A,E)=$FFFF+E*$10000
  11854.  End If 
  11855. Next A
  11856. End Proc